Il renvoie une chaîne de caractères car 0,1 et ses puissances (qui sont utilisées pour afficher des fractions décimales) ne sont pas représentables (du moins pas avec une précision totale) dans les systèmes à virgule flottante binaires.
Par exemple, 0,1 est en réalité 0,1000000000000000055511151231257827021181583404541015625, et 0,01 est en réalité 0,01000000000000000020816681711721685132943093776702880859375. (Merci à BigDecimal
d'avoir prouvé mon point. :-P)
Par conséquent (en l'absence d'un type de point flottant décimal ou de nombre rationnel), le renvoyer en tant que chaîne de caractères est le seul moyen de l'obtenir tronqué à exactement la précision requise pour l'affichage.
12 votes
Parce qu'il est conçu pour renvoyer une chaîne de caractères?
6 votes
À mes yeux, cela semble juste bizarre. .toFixed() ne fonctionne que sur les nombres... n'est-ce pas ?
20 votes
Je comprends que Math.round() fonctionne comme prévu. Je me demandais simplement pourquoi une fonction qui opère sur des nombres renvoie une chaîne de caractères...
4 votes
Les personnes vivant en 2017 devraient utiliser des bibliothèques comme lodash.com/docs/4.17.4#ceil
1 votes
Alors, est-ce que _. compte? Pas encore mis à jour à son frère.
0 votes
lodash.com/docs/4.17.15#round