Je voulais afficher un nombre à 2 décimales.
Je pensais pouvoir utiliser toPrecision(2)
en JavaScript.
Cependant, si le nombre est 0.05
, j'obtiens 0.0500
. Je préférerais que cela 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 ceci est intégré?
float_num.toFixed(2);
Remarque:toFixed()
arrondira ou complétera avec des zéros si nécessaire pour respecter la longueur spécifiée.
Vous pouvez le faire avec la fonction toFixed
, mais c'est buggy dans IE . Si vous voulez une solution fiable, regardez ma réponse ici .
Essayez toFixed
au lieu de toPrecision
.
Je ne sais pas comment je suis arrivé à cette question, mais même si cela fait de nombreuses années que cela est demandé, j'aimerais ajouter une méthode simple et rapide que je suis et qui ne m'a jamais laissé tomber:
var num = response_from_a_function_or_something();
var fixedNum = parseFloat(num).toFixed( 2 );
number.parseFloat(2)
fonctionne mais renvoie une chaîne.
Si vous souhaitez le conserver sous forme de nombre, vous pouvez utiliser:
Math.round(number * 100) / 100
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}
rond (1,005, 2); // return 1.01
rond (1,004, 2); // retourne 1 au lieu de 1,00
La réponse suit ce lien: http://www.jacklmoore.com/notes/rounding-in-javascript/
La méthode
toFixed()
formate un nombre en utilisant la notation en point fixe.
et voici la syntaxe
numObj.toFixed([digits])
L'argument digits est facultatif et vaut par défaut 0. Le type de retour est une chaîne et non un nombre. Mais vous pouvez le convertir en nombre en utilisant
numObj.toFixed([digits]) * 1
Il peut également lever des exceptions telles que TypeError
, RangeError
Voici le détail complet et la compatibilité dans le navigateur.
Vous pouvez essayer de mélanger Number()
et toFixed()
.
Faites convertir votre numéro cible en chaîne Nice avec X chiffres, puis convertissez la chaîne mise en forme en nombre.
Number( (myVar).toFixed(2) )
Voir exemple ci-dessous:
var myNumber = 5.01;
var multiplier = 5;
$('#actionButton').on('click', function() {
$('#message').text( myNumber * multiplier );
});
$('#actionButton2').on('click', function() {
$('#message').text( Number( (myNumber * multiplier).toFixed(2) ) );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="actionButton">Weird numbers</button>
<button id="actionButton2">Nice numbers</button>
<div id="message"></div>
toFixed function est utilisé pour limiter les nombres à virgule flottante à 2 décimales en javascript
two_decimal_num = parseFloat(3.14159.toFixed(2));
console.log(two_decimal_num)
J'ai fait cette fonction. Cela fonctionne très bien mais retourne une chaîne.
function show_float_val(val,upto = 2){
var val = parseFloat(val);
return val.toFixed(upto);
}