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

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

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

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

21502^150 ist zu groß für einen 32-Bit Float, 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

BCD tables only load in the browser

Siehe auch