Décimales de variable Javascript à modifier

Décimales de variable Javascript à modifier - HTML/CSS - Programmation

Marsh Posté le 10-06-2003 à 16:06:49    

Bonjour tout le monde,
 
J'ai une variable en JS à 4 décimales et je voudrais la passer à 2 décimales.
 
ex : 123.4500 -> 123.45
 
Est-il possible de gérer les arrondis ?
 
Merci !!!
 
RDS

Reply

Marsh Posté le 10-06-2003 à 16:06:49   

Reply

Marsh Posté le 10-06-2003 à 16:11:45    

oui, c'est tout à fait possible !

Reply

Marsh Posté le 10-06-2003 à 16:17:09    

walli a écrit :

oui, c'est tout à fait possible !


Tu as un lien ou ex de code ?
Merci !  :hello:

Reply

Marsh Posté le 10-06-2003 à 16:22:35    

je te file un code utilisé dans un htc.
ca marchera pas forcememnt du premier coup.
a toi de le remettre à ta sauce !

Code :
  1. function formatte(val)
  2. {
  3. if (val.length == 0)
  4.  return "";
  5. var index = val.indexOf('.');
  6. if ( (index != -1) && ((val.substring(index+1)).length>2) )
  7. {
  8.  var indexSign = val.indexOf('-');
  9.  if (indexSign != -1)
  10.   val = parseFloat(val)-0.005;
  11.  else
  12.   val = parseFloat(val)+0.005;
  13. }
  14. val = String(val);
  15. index = val.indexOf('.');
  16. if ((index != -1) && (index == val.length-1))
  17.  val = val +"00";
  18. if ((index != -1) && (index == val.length-2))
  19.  val = val +"0";
  20. if (index == -1)
  21.  val = val +".00";
  22. index = val.indexOf('.');
  23. var partieEntiere;
  24. if (index == -1)
  25.  partieEntiere = val;
  26. else
  27.  partieEntiere = val.substring(0,index);
  28. var retour="";
  29. var i;
  30. var j=0;
  31. for (i=partieEntiere.length-1;i>=0;i--)
  32. {
  33.  j++;
  34.  retour = partieEntiere.charAt(i) + retour;
  35.  if ((j % 3 == 0) && (j!=0) && (i!=0))
  36.  {
  37.   retour = " " + retour;
  38.   j=0;
  39.  }
  40. }
  41. if (index != -1)
  42.  retour= retour+val.substring(index,index+3);
  43. if (retour=="-0.00" )
  44.  retour="0.00";
  45. return retour;
  46. }


Message édité par walli le 10-06-2003 à 16:23:15
Reply

Marsh Posté le 10-06-2003 à 17:18:40    

Sinon tu as des fonctions toutes faites ( http://www.w3schools.com/js/js_math.asp ):
Math.round pour un vrai arrondi
Math.floor pour la partie entiere.
 
Et la je sens que tu vas me dire "Ouaaais mais je veux juste enlever les deux dernières décimales"... Bin tu multiplies par cent, tu arrondis et tu redivises par cent ;)

Reply

Marsh Posté le 17-07-2003 à 01:55:28    

Anapajari a écrit :

Sinon tu as des fonctions toutes faites ( http://www.w3schools.com/js/js_math.asp ):
Math.round pour un vrai arrondi
Math.floor pour la partie entiere.
 
Et la je sens que tu vas me dire "Ouaaais mais je veux juste enlever les deux dernières décimales"... Bin tu multiplies par cent, tu arrondis et tu redivises par cent ;)  

HELP j'ai du mal a trouver une focntion toute faite ... je galere pas mal avec le JS  :cry:  :cry:

Reply

Marsh Posté le 17-07-2003 à 11:00:48    

boon c'est pas dur quand même avec un truc dans ce genre la tu dois t'en sortir

Code :
  1. function myArrondi ( nombre)
  2. {
  3.    nombre = Math.Round(nombre*100) / 100;
  4.    return nombre;
  5. }


 
Et si tu veux tu dois même pouvoir flamber un peu en rajoutant la précision dans ta fonction

Code :
  1. function myArrondi ( nombre, precision)
  2. {
  3.    var coef = Math.pow(10, precision);
  4.    nombre = Math.Round(nombre*coef) / coef;
  5.    return nombre;
  6. }


 
Warning: code non testé


Message édité par anapajari le 17-07-2003 à 11:01:12
Reply

Marsh Posté le 17-07-2003 à 11:02:43    

Anapajari a écrit :

boon c'est pas dur quand même avec un truc dans ce genre la tu dois t'en sortir

Code :
  1. function myArrondi ( nombre)
  2. {
  3.    nombre = Math.Round(nombre*100) / 100;
  4.    return nombre;
  5. }


 
Et si tu veux tu dois même pouvoir flamber un peu en rajoutant la précision dans ta fonction

Code :
  1. function myArrondi ( nombre, precision)
  2. {
  3.    var coef = Math.pow(10, precision);
  4.    nombre = Math.Round(nombre*coef) / coef;
  5.    return nombre;
  6. }


 
Warning: code non testé

:hello:  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed