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

js
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:

js
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:

js
Math.fround(1.337); // 1.3370000123977661
Math.fround(1.337) === 1.337; // false

21502^150 ist zu groß für eine 32-Bit-Gleitkommazahl, daher wird Infinity zurückgegeben:

js
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 GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
fround

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch