Maison > Questions et réponses > le corps du texte
En js, Number.MAX_VALUE représente la valeur maximale pouvant être représentée. Si elle dépasse cette valeur, Infinity apparaîtra, mais mon calcul ci-dessous est difficile à comprendre
(Number.MAX_VALUE+123)==Number.MAX_VALUE //true why?
(Number.MAX_VALUE+Number.MAX_VALUE)==Number.MAX_VALUE //false why?
console.log(5.3e-324) //5e-324 why?
Qui comprend pourquoi cela se produit ? Pouvez-vous l'expliquer ?
黄舟2017-06-12 09:28:50
Parce que 123 est trop petit pour changer l'expression à chiffres élevés
Parce que Number.MAX_VALUE est suffisamment grand pour changer l'expression des chiffres élevés
5.3e-324 de .3 est trop petit
Résumé : js a souvent du mal à garantir l'exactitude des calculs en virgule flottante, tels que 0,1 + 0,2 != 0,3 // vrai
曾经蜡笔没有小新2017-06-12 09:28:50
Cent millions plus un, après arrondi, cela fait toujours cent millions, ce qui est presque la même vérité. Ce n'est pas si précis
我想大声告诉你2017-06-12 09:28:50
Dans le premier exemple, vous augmentez simplement votre nombre d'un tout petit nombre : 123 selon 1,79^308 n'est rien. Vous avez donc "perdu" un peu de précision : cela ne change pas le chiffre.
Dans le second, vous dépassez la valeur maximale, donc votre nombre n'est plus un nombre, c'est l'Infini.
par Mistalis de stackoverflow
quelque chose à propos de Number.MAX_VALUE