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ächstliegende 32-Bit Gleitkomma-Darstellung 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ächstliegende 32-Bit Gleitkomma-Darstellung von doubleFloat
.
Beschreibung
JavaScript verwendet intern 64-Bit Gleitkomma-Zahlen, die eine sehr hohe Präzision bieten. Es kann jedoch vorkommen, dass Sie mit 32-Bit Gleitkomma-Zahlen arbeiten, z. B. wenn Sie Werte aus einem Float32Array
lesen. Dies kann Verwirrung stiften: Ein Vergleich einer 64-Bit-Gleitkommazahl mit einer 32-Bit-Gleitkommazahl kann fehlschlagen, selbst wenn die Zahlen scheinbar identisch sind.
Um dieses Problem zu lösen, kann Math.fround()
verwendet werden, um eine 64-Bit-Gleitkommazahl in eine 32-Bit-Gleitkommazahl umzuwandeln. Intern behandelt JavaScript die Zahl weiterhin als 64-Bit-Gleitkommazahl und führt lediglich ein "Runden auf gerade" an der 23. Stelle der Mantisse durch und setzt alle nachfolgenden Mantissen-Bits auf 0
. Wenn die Zahl außerhalb des Bereichs einer 32-Bit-Gleitkommazahl liegt, wird Infinity
oder -Infinity
zurückgegeben.
Da fround()
eine statische Methode von Math
ist, verwenden Sie es immer als Math.fround()
und nicht als Methode eines erstellten Math
-Objekts (Math
ist kein Konstruktor).
Beispiele
Verwendung von Math.fround()
Die Zahl 1.5 kann im binären Zahlensystem präzise dargestellt werden und ist in 32-Bit und 64-Bit identisch:
Math.fround(1.5); // 1.5
Math.fround(1.5) === 1.5; // true
Die Zahl 1.337 kann jedoch im binären Zahlensystem nicht präzise dargestellt werden, daher unterscheidet sie sich in 32-Bit und 64-Bit:
Math.fround(1.337); // 1.3370000123977661
Math.fround(1.337) === 1.337; // false
ist zu groß für eine 32-Bit-Gleitkommazahl, 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
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fround |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support