Rumah >hujung hadapan web >tutorial js >Pengenalan kepada julat berangka dalam petua JavaScript_javascript
Semua nombor dalam JavaScript, sama ada integer atau perpuluhan, adalah daripada jenis Nombor. Dalam program ini, jenis Nombor pada asasnya ialah nombor titik terapung 64-bit, yang konsisten dengan nombor titik terapung jenis dua di Jawa oleh itu, semua nombor dalam JavaScript adalah nombor titik terapung. Mengikuti standard IEEE 754 (standard aritmetik titik terapung), julat berangka yang JavaScript boleh wakili ialah tambah atau tolak 1.7976931348623157 darab 10 kepada kuasa 308 dan perpuluhan terkecil yang boleh diwakili ialah tambah atau tolak 5 darab 10 kepada kuasa daripada negatif 324. Kedua-dua nilai sempadan ini boleh diperoleh dengan mengakses atribut MAX_VALUE dan atribut MIN_VALUE bagi objek Nombor masing-masing.
Untuk integer, mengikut keperluan standard ECMAScript (http://ecma262-5.com/ELS5_HTML.htm#Section_8.5), julat integer yang JavaScript boleh mewakili dan melaksanakan operasi aritmetik yang tepat ialah: Tambah atau tolak 2 dinaikkan kepada kuasa ke-53, iaitu, julat daripada nilai minimum -9007199254740992 kepada nilai maksimum 9007199254740992 untuk integer yang melebihi julat ini, JavaScript masih boleh melaksanakan operasi, tetapi ia tidak menjamin operasi; ketepatan keputusan operasi. Perlu diingat bahawa untuk operasi bit integer (seperti anjakan dan operasi lain), JavaScript hanya menyokong integer 32-bit, iaitu, integer dari -2147483648 hingga 2147483647.
Percubaan
Paparkan nilai mutlak nombor terbesar dan nilai mutlak perpuluhan terkecil dalam JavaScript:
Untuk integer di luar julat tambah atau tolak 2 dinaikkan kepada kuasa ke-53, JavaScript tidak dapat memberikan hasil pengiraan yang tepat:
Keputusan pengiraan yang betul hendaklah 9007199254740995, tetapi hasil pengiraan yang diberikan oleh JavaScript ialah 9007199254740996. Selepas cuba menukar formula pengiraan, anda boleh mendapati bahawa selagi integer lebih besar daripada 9007199254740992, ralat dalam hasil pengiraan ini akan kerap berlaku. Jika sisihan dalam ketepatan pengiraan boleh diterima, maka akibat daripada contoh berikut adalah lebih serius:
Disebabkan oleh isu ketepatan pengiraan, pernyataan di atas akan jatuh ke dalam gelung tak terhingga.
Untuk operasi bitwise, JavaScript hanya menyokong integer 32-bit:
Ia boleh dilihat bahawa untuk integer dalam 32 bit (256), JavaScript boleh melakukan operasi bit yang betul, dan hasilnya konsisten dengan hasil operasi bahagi (128). Untuk integer selain daripada 32 bit, JavaScript boleh melakukan operasi bahagi yang betul (1100000000), tetapi hasil yang diperoleh selepas menjalankan operasi bit adalah jauh daripada keputusan yang betul (-1047483648).