Rumah > Soal Jawab > teks badan
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?
黄舟2017-06-12 09:28:50
Kerana 123 terlalu kecil untuk menukar ungkapan angka tinggi
Oleh kerana Number.MAX_VALUE cukup besar untuk menukar ungkapan digit tinggi
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
曾经蜡笔没有小新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
我想大声告诉你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