Math.f16round()

Math.f16round() 静态方法返回数字的最近的 16 位半精度 浮点数表示。

试一试

语法

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

规范

规范
Float16Array
# sec-math.f16round

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅