cari

Rumah  >  Soal Jawab  >  teks badan

nilai maksimum javascript

Dalam js, Number.MAX_VALUE mewakili nilai maksimum yang boleh diwakili. Jika melebihi nilai ini, Infinity akan muncul, tetapi pengiraan saya di bawah sukar difahami

(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?

Siapa faham kenapa ini boleh?

曾经蜡笔没有小新曾经蜡笔没有小新2792 hari yang lalu997

membalas semua(4)saya akan balas

  • 黄舟

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

    1. Kerana 123 terlalu kecil untuk menukar ungkapan angka tinggi

    2. Oleh kerana Number.MAX_VALUE cukup besar untuk menukar ungkapan digit tinggi

    3. 5.3e-324 daripada .3 terlalu kecil

    Ringkasan: js sering mengalami kesukaran dalam memastikan ketepatan pengiraan titik terapung, seperti 0.1 + 0.2 != 0.3 // benar

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:28:50

    Seratus juta tambah satu, selepas digenapkan, ia masih seratus juta, iaitu kebenaran yang hampir sama. Ia tidak begitu tepat

    balas
    0
  • 世界只因有你

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


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

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:28:50

    Dalam contoh pertama, anda hanya menambah nombor anda dengan nombor yang sangat kecil: 123 mengikut 1.79^308 bukan apa-apa. Jadi anda "kehilangan" beberapa ketepatan: ia tidak menukar nombor.

    Dalam yang kedua, anda melebihi nilai maksimum, jadi nombor anda bukan nombor lagi, ia adalah Infiniti.

    oleh Mistalis daripada stackoverflow
    sesuatu tentang Number.MAX_VALUE

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

    balas
    0
  • Batalbalas