Alle Zahlen in JavaScript, egal ob Ganzzahlen oder Dezimalzahlen, sind vom Typ Zahl. Innerhalb des Programms ist der Zahlentyp im Wesentlichen eine 64-Bit-Gleitkommazahl, die mit der Gleitkommazahl vom Typ Double in Java übereinstimmt. Daher sind alle Zahlen in JavaScript Gleitkommazahlen. Gemäß dem IEEE 754-Standard (Gleitkomma-Arithmetikstandard) beträgt der numerische Bereich, den JavaScript darstellen kann, plus oder minus 1,7976931348623157 mal 10 hoch 308, und die kleinste darstellbare Dezimalzahl ist plus oder minus 5 mal 10 hoch von negativ 324. Diese beiden Grenzwerte können durch Zugriff auf das Attribut MAX_VALUE bzw. MIN_VALUE des Number-Objekts erhalten werden.
Für Ganzzahlen gemäß den Anforderungen des ECMAScript-Standards (http://ecma262-5.com/ELS5_HTML.htm#Section_8.5), der Bereich von Ganzzahlen, den JavaScript darstellen und ausführen kann Genaue arithmetische Operationen sind: Plus oder minus 2 hoch 53, d Genauigkeit der Operationsergebnisse. Es ist zu beachten, dass JavaScript für ganzzahlige Bitoperationen (z. B. Verschiebungen und andere Operationen) nur 32-Bit-Ganzzahlen unterstützt, dh Ganzzahlen von -2147483648 bis 2147483647.
Experimentieren
Zeigen Sie den absoluten Wert der größten Zahl und den absoluten Wert der kleinsten Dezimalzahl in JavaScript an:
Für ganze Zahlen außerhalb des Bereichs von plus oder minus 2 hoch 53 kann JavaScript keine genauen Berechnungsergebnisse liefern:
Das korrekte Berechnungsergebnis sollte 9007199254740995 sein, aber das von JavaScript bereitgestellte Berechnungsergebnis ist 9007199254740996. Nachdem Sie versucht haben, die Berechnungsformel zu ändern, können Sie feststellen, dass Fehler in diesem Berechnungsergebnis häufig auftreten, solange die Ganzzahl größer als 9007199254740992 ist. Wenn die Abweichung in der Berechnungsgenauigkeit akzeptabel ist, sind die Folgen des folgenden Beispiels noch gravierender:
Aufgrund von Problemen mit der Berechnungsgenauigkeit gerät die obige for-Anweisung in eine Endlosschleife.
Für bitweise Operationen unterstützt JavaScript nur 32-Bit-Ganzzahlen:
Es ist ersichtlich, dass JavaScript für Ganzzahlen innerhalb von 32 Bit (256) korrekte Bitoperationen ausführen kann und das Ergebnis mit dem Ergebnis der Divisionsoperation (128) übereinstimmt. Für andere Ganzzahlen als 32 Bit kann JavaScript korrekte Divisionsoperationen ausführen (1100000000), aber das nach der Durchführung von Bitoperationen erhaltene Ergebnis ist weit vom korrekten Ergebnis entfernt (-1047483648).