試一試
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
語法
js
Math.f16round(doubleFloat)
引數
doubleFloat-
一個數字。
返回值
doubleFloat 最接近的 16 位半精度浮點表示。
描述
Math.f16round 是 Math.fround() 的 16 位對應版本。它旨在平滑與 float16 數字互動時的一些粗糙邊緣,例如在讀取 Float16Array 時。在內部,JavaScript 繼續將數字視為 64 位浮點數,它僅對尾數的第 10 位執行“舍入到偶數”,並將所有後續尾數位設定為 0。如果數字超出了 16 位浮點數的範圍,則返回 Infinity 或 -Infinity。
由於 f16round() 是 Math 的靜態方法,您始終將其作為 Math.f16round() 呼叫,而不是作為您建立的 Math 物件的例項方法(Math 不是建構函式)。
示例
使用 Math.f16round()
數字 1.5 可以精確地表示在二進位制數系統中,並且在 16 位和 64 位表示中是相同的。
js
Math.f16round(1.5); // 1.5
Math.f16round(1.5) === 1.5; // true
然而,數字 1.337 不能精確地表示在二進位制數系統中,因此它在 16 位和 64 位表示中是不同的。
js
Math.f16round(1.337); // 1.3369140625
Math.f16round(1.337) === 1.337; // false
100000 對於 16 位浮點數來說太大了,所以返回 Infinity。
js
Math.f16round(100000); // Infinity
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-math.f16round |
瀏覽器相容性
載入中…