Math.f16round()
Baseline 2025Newly available
Since April 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die statische Methode Math.f16round()
gibt die nächstgelegene 16-Bit-Halbpräzisions- Float-Darstellung einer Zahl zurück.
Probieren Sie es aus
console.log(Math.f16round(5.5));
// Expected output: 5.5
console.log(Math.f16round(5.05));
// Expected output: 5.05078125
console.log(Math.f16round(5));
// Expected output: 5
console.log(Math.f16round(-5.05));
// Expected output: -5.05078125
Syntax
Math.f16round(doubleFloat)
Parameter
doubleFloat
-
Eine Zahl.
Rückgabewert
Die nächstgelegene 16-Bit-Halbpräzisions- Float-Darstellung von doubleFloat
.
Beschreibung
Math.f16round
ist das 16-Bit-Gegenstück zu Math.fround()
. Es soll einige Unschärfen beim Umgang mit Float16-Zahlen glätten, zum Beispiel beim Lesen aus einem Float16Array
. Intern behandelt JavaScript die Zahl weiterhin als 64-Bit-Float, es führt lediglich ein "Rundung-auf-eben" auf das 10. Bit der Mantisse durch und setzt alle folgenden Mantissenbits auf 0
. Wenn die Zahl außerhalb des Bereichs eines 16-Bit-Floats liegt, wird Infinity
oder -Infinity
zurückgegeben.
Da f16round()
eine statische Methode von Math
ist, verwenden Sie es immer als Math.f16round()
und nicht als Methode eines von Ihnen erstellten Math
-Objekts (Math
ist kein Konstruktor).
Beispiele
Verwendung von Math.f16round()
Die Zahl 1.5 kann im binären Zahlensystem genau dargestellt werden und ist in 16-Bit und 64-Bit identisch:
Math.f16round(1.5); // 1.5
Math.f16round(1.5) === 1.5; // true
Jedoch kann die Zahl 1.337 im binären Zahlensystem nicht exakt dargestellt werden, sodass sie sich in 16-Bit und 64-Bit unterscheidet:
Math.f16round(1.337); // 1.3369140625
Math.f16round(1.337) === 1.337; // false
100000 ist zu groß für einen 16-Bit-Float, deshalb wird Infinity
zurückgegeben:
Math.f16round(100000); // Infinity
Spezifikationen
Specification |
---|
Float16Array # sec-math.f16round |