Math.fround()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die statische Methode Math.fround()
gibt die nächstgelegene 32-Bit Einzelpräzision Fließkommadarstellung einer Zahl zurück.
Probieren Sie es aus
console.log(Math.fround(5.5));
// Expected output: 5.5
console.log(Math.fround(5.05));
// Expected output: 5.050000190734863
console.log(Math.fround(5));
// Expected output: 5
console.log(Math.fround(-5.05));
// Expected output: -5.050000190734863
Syntax
Math.fround(doubleFloat)
Parameter
doubleFloat
-
Eine Zahl.
Rückgabewert
Die nächstgelegene 32-Bit Einzelpräzision Fließkommadarstellung von doubleFloat
.
Beschreibung
JavaScript verwendet intern 64-Bit Gleitkommazahlen mit doppelter Genauigkeit, die eine sehr hohe Präzision bieten. Es kann jedoch vorkommen, dass Sie mit 32-Bit Fließkommazahlen arbeiten, beispielsweise wenn Sie Werte aus einem Float32Array
lesen. Dies kann zu Verwirrung führen: Das Überprüfen der Gleichheit zwischen einem 64-Bit Float und einem 32-Bit Float kann fehlschlagen, auch wenn die Zahlen scheinbar identisch sind.
Um dies zu lösen, kann Math.fround()
verwendet werden, um den 64-Bit Float in einen 32-Bit Float umzuwandeln. Intern behandelt JavaScript die Zahl weiterhin als 64-Bit Float; es wird lediglich ein "Round to Even" auf das 23. Bit der Mantisse durchgeführt, und alle folgenden Mantissenbits werden auf 0
gesetzt. Wenn die Zahl außerhalb des Bereichs eines 32-Bit Floats liegt, wird Infinity
oder -Infinity
zurückgegeben.
Da fround()
eine statische Methode von Math
ist, verwenden Sie es immer als Math.fround()
, anstatt als Methode eines von Ihnen erstellten Math
Objekts (Math
ist kein Konstruktor).
Beispiele
Verwendung von Math.fround()
Die Zahl 1.5 kann im binären Zahlensystem genau dargestellt werden und ist identisch in 32-Bit und 64-Bit:
Math.fround(1.5); // 1.5
Math.fround(1.5) === 1.5; // true
Allerdings kann die Zahl 1.337 im binären Zahlensystem nicht genau dargestellt werden und unterscheidet sich daher in 32-Bit und 64-Bit:
Math.fround(1.337); // 1.3370000123977661
Math.fround(1.337) === 1.337; // false
ist zu groß für einen 32-Bit Float, daher wird Infinity
zurückgegeben:
2 ** 150; // 1.42724769270596e+45
Math.fround(2 ** 150); // Infinity
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-math.fround |
Browser-Kompatibilität
BCD tables only load in the browser