Baseline Widely available
Die Math.fround()
statische Methode gibt die nächstgelegene 32-Bit-Einzelpräzisions- FlieÃkommadarstellung einer Zahl zurück.
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 Parameter Rückgabewert
Die nächstgelegene 32-Bit-Einzelpräzisions- FlieÃkommadarstellung von doubleFloat
.
JavaScript verwendet intern 64-Bit-Doppelpräzisions-FlieÃkommazahlen, die eine sehr hohe Präzision bieten. Allerdings kann es manchmal vorkommen, dass Sie mit 32-Bit-FlieÃkommazahlen arbeiten, zum Beispiel wenn Sie Werte aus einem Float32Array
lesen. Dies kann zu Verwirrung führen: das Ãberprüfen auf Gleichheit zwischen einer 64-Bit- und einer 32-Bit-FlieÃkommazahl kann fehlschlagen, obwohl die Zahlen scheinbar identisch sind.
Um das zu lösen, kann Math.fround()
genutzt werden, um die 64-Bit-FlieÃkommazahl in eine 32-Bit-FlieÃkommazahl umzuwandeln. Intern behandelt JavaScript die Zahl weiterhin als 64-Bit-FlieÃkommazahl, es wird lediglich eine "Rundung auf gerade" an der 23. Stelle der Mantisse durchgeführt und alle folgenden Mantissen-Bits werden auf 0
gesetzt. Liegt die Zahl auÃerhalb des Bereichs einer 32-Bit-FlieÃkommazahl, wird Infinity
oder -Infinity
zurückgegeben.
Da fround()
eine statische Methode von Math
ist, verwenden Sie sie immer als Math.fround()
und nicht als Methode eines erstellten Math
-Objekts (Math
ist kein Konstruktor).
Die Zahl 1.5 kann im binären Zahlensystem exakt dargestellt werden und ist in 32-Bit und 64-Bit identisch:
Math.fround(1.5); // 1.5
Math.fround(1.5) === 1.5; // true
Allerdings kann die Zahl 1.337 im binären Zahlensystem nicht exakt 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
2150 2^150 ist zu groà für eine 32-Bit-FlieÃkommazahl, daher wird Infinity
zurückgegeben:
2 ** 150; // 1.42724769270596e+45
Math.fround(2 ** 150); // Infinity
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4