Soyez prudent lorsque vous utilisez toFixed()
:
Premièrement, l'arrondi du nombre est effectué en utilisant la représentation binaire du nombre, ce qui peut entraîner un comportement inattendu. Par exemple
(0.595).toFixed(2) === '0.59'
au lieu de '0.6'
.
Deuxièmement, il y a un bug d'IE avec toFixed()
. Dans IE (au moins jusqu'à la version 7, je n'ai pas vérifié IE8), la règle suivante s'applique :
(0.9).toFixed(0) === '0'
Il peut être judicieux de suivre la suggestion de kkyy ou d'utiliser un fichier personnalisé toFixed()
fonction, par exemple
function toFixed(value, precision) {
var power = Math.pow(10, precision || 0);
return String(Math.round(value * power) / power);
}
21 votes
Juste un petit détail : voulez-vous "couper" tout sauf les deux premiers chiffres, ou voulez-vous arrondir à deux chiffres ?