2015-08-13 3 views

Répondre

6

1.99999999999999999999999999 est et non la valeur réelle du nombre. Il a une valeur de de 2 après que le littéral a été analysé car c'est "le meilleur" que JavaScript peut représenter une telle valeur.

numéros JavaScript sont IEEE-754 binary64 ou "double precision" qui permettent de 15 à 17 significatifs [décimales] chiffres de précision - le montre littéral nécessite 27 chiffres significatifs qui se traduit par une perte d'information

Test:. 1.99999999999999999999999999 === 2 (qui se traduit par vrai .)

ici is another answer of mine qui décrit la question;.? la précision relative finie est le problème

+0

donc je devrais plutôt utiliser un autre langage COBOL – diegoaguilar

+0

de @diegoaguilar pour ce faire .. ce que vous utilisez JavaScript pour un? raison :) – user2864740

+0

Application d'analyse numérique dans une API Node.js – diegoaguilar