recherche

Maison  >  Questions et réponses  >  le corps du texte

valeur maximale javascript

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 ?

曾经蜡笔没有小新曾经蜡笔没有小新2782 Il y a quelques jours993

répondre à tous(4)je répondrai

  • 黄舟

    黄舟2017-06-12 09:28:50

    1. Parce que 123 est trop petit pour changer l'expression à chiffres élevés

    2. Parce que Number.MAX_VALUE est suffisamment grand pour changer l'expression des chiffres élevés

    3. 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

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新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

    répondre
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:28:50


    应该只是一种数值的表示吧,如果减号与数字隔开是无法计算的

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你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

    说白了就是浮点数精度问题!

    répondre
    0
  • Annulerrépondre