2009-09-02 7 views
3

j'effectuer l'opération suivante en Javascript:Franchir le résultat de la division en Javascript

0,0030/0,031

Comment puis-je arrondir le résultat à un nombre arbitraire de lieux? Quel est le nombre maximum qu'un var tiendra?

+1

deux ou dix? –

+0

e est plus proche de w que de o à n sur la plupart des claviers –

+1

Ceci est maintenant une question valide. –

Répondre

13

Les navigateurs modernes doivent prendre en charge une méthode appelée toFixed(). Voilà an example taken from the web:

// Example: toFixed(2) when the number has no decimal places 
// It will add trailing zeros 
var num = 10; 
var result = num.toFixed(2); // result will equal 10.00 

// Example: toFixed(3) when the number has decimal places 
// It will round to the thousandths place 
num = 930.9805; 
result = num.toFixed(3); // result will equal 930.981 

toPrecision() pourrait également être utile pour vous, il y a un autre excellent exemple sur cette page.


Pour les anciens navigateurs, vous pouvez le réaliser manuellement à l'aide Math.round. Math.round() arrondira à l'entier le plus proche. Afin d'obtenir une précision décimale, vous devez manipuler vos chiffres un peu:

  1. Multiplier le nombre initial de 10^x (10 à la puissance x), où x est le nombre de décimales voulez.
    • Appliquer Math.round()
    • Diviser par 10^x

Donc, pour arrondir 5,11111111 à trois décimales, vous feriez ceci:

var result=Math.round(5.111111*1000)/1000 //returns 5.111 
+0

N'oubliez pas que l'implémentation 'toFixed' de JScript est plutôt déficiente - http://www.jibbering.com/faq/#formatNumber – kangax

2

Le la plus grande valeur finie positive du type de nombre est approximativement 1.7976931348623157 * 10. ECMAScript-262 3e éd. définit également Number.MAX_VALUE qui contient cette valeur.

1

Pour répondre aux questions de Jag:

  1. Utilisez la méthode toFixed(). Il faut se méfier; il renvoie une chaîne, pas un nombre.
  2. Quinze, peut-être seize. Si vous essayez d'en obtenir plus, les chiffres supplémentaires seront des zéros ou des ordures. Essayez de formater quelque chose comme 1/3 pour voir ce que je veux dire.
Questions connexes