Tất cả các số trong Javascript là 64 bit (8 byte) số dấu phẩy động nhưng tại sao phạm vi hiệu quả của JavaScript là 5e-324 (âm) thành 1.7976931348623157e + 308 (dương)?Số trong Javascript và phạm vi hiệu dụng
5
A
Trả lời
8
Vì đó là số defined by the IEEE 754 spec.
0x 0000 0000 0000 0001 = 2⁻¹⁰²²⁻⁵² ≈ 4.9406564584124654 x 10⁻³²⁴ (Min subnormal positive double)
0x 000f ffff ffff ffff = 2⁻¹⁰²² - 2⁻¹⁰²²⁻⁵² ≈ 2.2250738585072009 x 10⁻³⁰⁸ (Max subnormal positive double)
0x 0010 0000 0000 0000 = 2⁻¹⁰²² ≈ 2.2250738585072014 x 10⁻³⁰⁸ (Min normal positive double)
0x 7fef ffff ffff ffff = (1 + (1 - 2⁻⁵²)) x 2¹⁰²³ ≈ 1.7976931348623157 x 10³⁰⁸ (Max Double)
+1
+ Thông báo đặc biệt là mantissa 52 bit trong tham chiếu. –
4
Do giá trị không chuẩn; xem ví dụ http://en.wikipedia.org/wiki/Denormal_number. Các giá trị này mở rộng phạm vi các giá trị dấu phẩy động để cho phép các giá trị gần bằng không hơn nếu không thì sẽ có thể.
Bạn sẽ được khuyên nên coi đây là chi tiết triển khai có mục đích là thực hiện các phép tính với kết quả trung gian rất nhỏ không hoạt động quá mức; khi bạn sử dụng những giá trị rất nhỏ này, một số độ chính xác bị mất.
Các vấn đề liên quan
- 1. Phạm vi "này" trong JavaScript
- 2. phạm vi JavaScript và đóng cửa
- 3. Phạm vi gọi lại JavaScript
- 4. Cách phạm vi tốt trong JavaScript
- 5. Đóng/phạm vi JavaScript/jQuery
- 6. Hiểu phạm vi hàm JavaScript
- 7. JavaScript: phạm vi toàn cầu
- 8. Phạm vi JavaScript trong khối thử
- 9. biến phạm vi trong d3 javascript
- 10. Chuỗi hàm phạm vi bên trong JavaScript?
- 11. javascript chức năng phạm vi
- 12. Coffeescript/Javascript biến phạm vi
- 13. Phạm vi JavaScript và ngữ cảnh thực hiện
- 14. Số Đảo ngược trong một Phạm vi
- 15. addEventListener và phạm vi của
- 16. javascript phạm vi khai báo hàm
- 17. Số ngẫu nhiên trong một phạm vi
- 18. Javascript mệnh đề catch phạm vi
- 19. JavaScript- biến Phạm vi và xử lý sự kiện
- 20. Phạm vi biến vòng lặp JavaScript
- 21. Chỉ số nhỏ ngoài phạm vi số
- 22. Đóng và phạm vi động?
- 23. Javascript, các lớp bên trong và cách truy cập vào phạm vi gốc một cách hiệu quả
- 24. Javascript eval trên phạm vi toàn cầu?
- 25. Local Javascript Phạm vi vấn đề
- 26. Vấn đề với Phạm vi Biến Javascript
- 27. Phạm vi quản lý và tuổi thọ đối tượng Trong phạm vi STL Vectors
- 28. Cần trợ giúp với phạm vi biến đổi trong Javascript
- 29. duy trì phạm vi với javascript
- 30. Phạm vi phiênStorage và localStorage
Từ tất cả các giá trị có thể, 9007199254740990 trong số chúng được thể hiện dưới dạng NaN (Không phải số). –
edwardpku, bạn có lẽ nên chấp nhận câu trả lời của MДΓΓ БДLL hoặc của tôi (tùy thuộc vào việc bạn tìm thấy một con trỏ đến spec hay giải thích lý do tại sao spec nói rằng, hữu ích hơn). –
cảm ơn, Gareth. : D – edwardpku