bingojm | Bonjour à tous,
J'ai enfin trouvé la solution pour convertir un nombre avec un espace séparateur pour les milliers ainsi que les décimales après la virgule.
Cependant, j'aimerais modifier ce code pour que l'utilisateur puisse utiliser le point comme séparateur de milliers (quand il tape son nombre) et que ce point ne soit pas considéré comme la virgule!
Donc je voudrais que quand l'utilisateur tape:
1000000 ==> 1.000.000,00
1.000.000 ==> 1.000.000,00 et pas 1,00
Pouvez-vous m'aider?
Voici mon code:
Code :
- <HTML>
- <script LANGUAGE="JAVASCRIPT">
- function calculer() {
- var eur = parseFloat(supprEspace(document.getElementById('eur').value.replace(/,/,"." )));
- var chang = parseFloat(supprEspace(document.getElementById('chang').value.replace(/,/,"." )));
- var dol = Math.round((eur*chang)*100)/100;
- document.getElementById('eur').value = format(eur,2," " );
- document.getElementById('chang').value = format(chang,2," " );
- document.getElementById('dol').value = format(dol,2," " );
-
- return false;
- }
- function format(valeur,decimal,separateur) {
- var deci=Math.round( Math.pow(10,decimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur))));
- var val=Math.floor(Math.abs(valeur));
- if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(Math.abs(valeur)); deci=0;}
- var val_format=val+"";
- var nb=val_format.length;
- for (var i=1;i<4;i++) {
- if (val>=Math.pow(10,(3*i))) {
- val_format=val_format.substring(0,nb-(3*i))+" "+val_format.substring(nb-(3*i));
- }
- }
- if (decimal>0) {
- var decim="";
- for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
- deci=decim+deci.toString();
- val_format=val_format+","+deci;
- }
- if (parseFloat(valeur)<0) {val_format="-"+val_format;}
- return val_format;
- }
- function supprEspace(f) {
- var txtResultat="";
- for (var i=0; i<=f.length-1; i++) {
- if (f.charAt(i)!=" " ) {
- txtResultat+=f.charAt(i);
- }
- }
- return txtResultat;
- }
- </SCRIPT>
- <STYLE type="text/css">
- .champ
- {
- text-align: right;
- width: 145px;
- }
- </STYLE>
- <BODY>
- <FORM name="formulaire" onsubmit="return calculer()">
- <INPUT name="EURO" type="text" id="eur" value="0" class="champ" onBlur="return calculer()"> EURO<BR />
- <INPUT name="CHANGE" type="text" id="chang" value="0" class="champ"> CHANGE<BR />
- <INPUT name="DOLLAR" type="text" id="dol" value="0" class="champ" readonly> DOLLAR<BR />
- <INPUT type="submit" value="Convertir">
- </FORM>
- </BODY>
- </HTML>
|
merci d'avance! Message édité par bingojm le 18-07-2011 à 17:29:44
|