Je voulais afficher un nombre à 2 décimales.
Je pensais pouvoir utiliser toPrecision(2)
en JavaScript.
Cependant, si le nombre est 0.05
, je comprends 0.0500
. Je préfère que ça reste le même.
Voir sur JSbin .
Quelle est la meilleure façon de procéder?
Je peux penser à coder quelques solutions, mais j'imagine (j'espère) que quelque chose comme ça est intégré?
Vous pouvez le faire avec la
toFixed
fonction, mais c'est bogué dans IE . Si vous voulez une solution fiable, regardez ma réponse ici .la source
float_num.toFixed(2);
fonctionne très bien)Essayez
toFixed
au lieu detoPrecision
.la source
Je ne sais pas comment j'en suis arrivé à cette question, mais même si cela fait de nombreuses années que cela a été posé, je voudrais ajouter une méthode rapide et simple que je suis et elle ne m'a jamais déçu:
la source
parseFloat()
là - bas? Il ne doit être utilisé que si le nombre provient d'une chaîne.function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }
La réponse est en suivant ce lien: http://www.jacklmoore.com/notes/rounding-in-javascript/
la source
number.parseFloat(2)
fonctionne mais il renvoie une chaîne.Si vous souhaitez le conserver en tant que type de nombre, vous pouvez utiliser:
Math.round(number * 100) / 100
la source
Vous pouvez essayer de mélanger
Number()
ettoFixed()
.Faites convertir votre numéro cible en une jolie chaîne de X chiffres, puis convertissez la chaîne formatée en un nombre.
Number( (myVar).toFixed(2) )
Voir l'exemple ci-dessous:
la source
et voici la syntaxe
L' argument chiffres est facultatif et par défaut est 0. Et le type de retour est une chaîne et non un nombre. Mais vous pouvez le convertir en nombre en utilisant
Il peut également générer des exceptions comme
TypeError
,RangeError
Voici tous les détails et la compatibilité dans le navigateur.
la source
la source
J'ai fait cette fonction. Cela fonctionne bien mais renvoie une chaîne.
la source