Problèmes avec un nombre et les decimal

Résolu
takali Messages postés 29 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 octobre 2008 - 19 oct. 2006 à 12:59
takali Messages postés 29 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 octobre 2008 - 20 oct. 2006 à 11:48
Voila j'ai fait un simple calcul en javascript qui doit me retourné un
resultat, le problème c'est que si le resultat retourné sera 4.50 le
zero et automatiquement supprimé, je souhaiterais avoir deux decimal a
la fin de mon resultat même si c'est un zero à la fin.


Merci pour votre aide


Voici le mon code :
<!-- BBCode Start --><table bgcolor="#e6effe" border="0" cellpadding="5" cellspacing="0" width="100%">----, <tt>
<html>

<head>

<title>calcul</title>

<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">

<script language=\"JavaScript\">

<!--

function calcul() {

var formule=(1.50+1.50+1.50);

var total=parseFloat(formule)*100

total=Math.round(total)/100;

form1.valeur1.value = total;

}

//-->

</script>

</head>

<form name=\"form1\" id=\"form1\">

</form>

</html>
</tt></td>
</td></tr></tbody></table><!-- BBCode End -->


Si quelqu'un pouvait m'aider merci

________________
rem909

2 réponses

nickadele Messages postés 1251 Date d'inscription mercredi 7 août 2002 Statut Modérateur Dernière intervention 10 avril 2013
20 oct. 2006 à 11:39
Une petite fonction qui n'est pas de moi mais qui pourra t'aider :
form1.valeur1.value = format(total, 2, " ");


function format(valeur,decimal,separateur) {
// formate un chiffre avec 'decimal' chiffres après la virgule et un 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))+separateur+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;
}
3
takali Messages postés 29 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 13 octobre 2008
20 oct. 2006 à 11:48
Merci pour ta participation, mais j'ai trouvé beaucoup plus simple :

Look at :

<script language="JavaScript">
<!--
function calcul() { var formule=(1.50+1.50+1.50);
var total=parseFloat(formule)*100
total=Math.round(total)/100;
total+=0; form_t_cady.t_cady.value=total.toFixed(2); }
//-->
</script>

"total.toFixed(2)" en ajoutant "toFixed(2)" j'arrive à garder mais deux zero
apres la virgule

Mrci quand même pour ta participation
0
Rejoignez-nous