Wszystkie liczby w kodzie JavaScript to 64-bitowe (8 bajtów) liczby zmiennoprzecinkowe , ale dlaczego efektywny zakres kodu JavaScript wynosi 5e-324 (ujemny) do 1,7976931348623157e + 308 (pozytywny)?Liczby w kodzie JavaScript i efektywny zakres
5
A
Odpowiedz
8
Bo to jest 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
+ Zwróć uwagę zwłaszcza, że 52-bitowa mantysa w odnośniku. –
4
Ze względu na wartości denormalne; patrz np. http://en.wikipedia.org/wiki/Denormal_number. Rozszerzają one zakres wartości zmiennoprzecinkowych, aby umożliwić wartości bliższe zeru, niż byłoby to możliwe w innym przypadku.
Zaleca się, aby traktować je jako szczegół wdrożenia, którego celem jest uczynienie obliczeń z bardzo małymi pośrednimi wynikami, które nie zachowują się zbyt patologicznie; kiedy używasz tych bardzo małych wartości, traci się precyzję.
Powiązane problemy
- 1. Szybki i bezpieczny sposób na usunięcie znaku zapieczętowanej liczby w kodzie JavaScript
- 2. Usuwanie przecinka dziesiętnego z liczby w kodzie JavaScript
- 3. Jak dodać tysiąc seperatorów do liczby w kodzie JavaScript?
- 4. Jak efektywny jest javascript?
- 5. Klasy JavaScript i zakres zmienny
- 6. JavaScript asynchroniczny callback i zakres
- 7. JavaScript zmienny zakres i wartość
- 8. Zakres „to” w JavaScript
- 9. Data i nowa data w kodzie JavaScript
- 10. Zakres JavaScript w bloku próbnym
- 11. zakres zmienny w d3 javascript
- 12. Zakres zmiennej javascript w instrukcji IF
- 13. JavaScript Zakres pytanie
- 14. Zmiana konstruktora w kodzie JavaScript
- 15. Wzory UI w kodzie JavaScript
- 16. uzyskać dane w kodzie JavaScript
- 17. Składnia "elseif" w kodzie JavaScript
- 18. Liczby z przecinkami w JavaScript
- 19. Jak sformatować liczby w JavaScript?
- 20. Najprostszy sposób na uzyskanie liczby miejsc po przecinku w liczbie w kodzie JavaScript
- 21. Javascript: Zakres zmiennej między różnymi plikami JavaScript
- 22. Zakres zmiennej JavaScript wewnątrz pętli
- 23. addEventListener i zakres tego
- 24. JavaScript widoczny w Firebug, niedostępne w kodzie
- 25. Members javascript liczby dziesiętne
- 26. Ustawić zakres wyboru w javascript IE8
- 27. Set wybór przez zakres w JavaScript
- 28. Jaki zakres dat jest dozwolony w JavaScript?
- 29. Jaka jest różnica + operator i metoda concat() w kodzie JavaScript
- 30. JavaScript zewnętrzny zakres zmienny dostęp
Z wszystkich możliwych wartości, 9007199254740990 z nich są reprezentowane jako NaN (Nie liczba). –
edwardpku, powinieneś zaakceptować odpowiedź MДΓΓ БДLL lub moją (w zależności od tego, czy znajdziesz wskaźnik do specyfikacji, czy też wyjaśnienie, dlaczego specyfikacja mówi, że jest bardziej pomocna). –
dzięki, Gareth. : D – edwardpku