Math.f16round()

基準線 2025
新推出

自 ⁨2025 年 4 月⁩起,此功能適用於最新裝置和瀏覽器版本。此功能可能不適用於較舊的裝置或瀏覽器。

Math.f16round() 靜態方法返回一個數字最接近的 16 位半精度浮點表示。

試一試

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.f16roundMath.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

瀏覽器相容性

另見