Heim > Web-Frontend > js-Tutorial > Einführung in numerische Bereiche in JavaScript_Javascript-Tipps

Einführung in numerische Bereiche in JavaScript_Javascript-Tipps

WBOY
Freigeben: 2016-05-16 16:23:39
Original
1551 Leute haben es durchsucht

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:

Code kopieren Der Code lautet wie folgt:

console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);

Die angezeigten Ergebnisse sind 1,7976931348623157e 308 und 5e-324.

Für ganze Zahlen außerhalb des Bereichs von plus oder minus 2 hoch 53 kann JavaScript keine genauen Berechnungsergebnisse liefern:

Code kopieren Der Code lautet wie folgt:

var a = 9007199254740992;
console.log(a 3);


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:


Code kopieren Der Code lautet wie folgt:

var MAX_INT = 9007199254740992;
for (var i = MAX_INT; i < MAX_INT 2; i) {
// Endlosschleife
}


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:


Code kopieren Der Code lautet wie folgt:

var smallInt = 256;
var bigInt = 2200000000;
console.log(smallInt / 2);
console.log(smallInt >> 1);
console.log(bigInt / 2);
console.log(bigInt >> 1);


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).

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage