Math.f16round()

Baseline 2025
Newly available

Since April 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Phương thức tĩnh Math.f16round() trả về biểu diễn float 16-bit half precision gần nhất của một số.

Try it

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

Cú pháp

js
Math.f16round(doubleFloat)

Tham số

doubleFloat

Một số.

Giá trị trả về

Biểu diễn float 16-bit half precision gần nhất của doubleFloat.

Mô tả

Math.f16round là đối tác 16-bit của Math.fround(). Nó được thiết kế để làm mịn một số cạnh thô khi tương tác với các số float16, chẳng hạn khi đọc từ Float16Array. Bên trong, JavaScript vẫn xử lý số như một float 64-bit, nó chỉ thực hiện "round to even" trên bit thứ 10 của mantissa, và đặt tất cả các bit mantissa tiếp theo thành 0. Nếu số nằm ngoài phạm vi của float 16-bit, Infinity hoặc -Infinity được trả về.

f16round() là một phương thức tĩnh của Math, bạn luôn dùng nó là Math.f16round(), chứ không phải như một phương thức của đối tượng Math bạn tạo (Math không phải là constructor).

Ví dụ

Sử dụng Math.f16round()

Số 1.5 có thể được biểu diễn chính xác trong hệ nhị phân, và giống nhau ở dạng 16-bit và 64-bit:

js
Math.f16round(1.5); // 1.5
Math.f16round(1.5) === 1.5; // true

Tuy nhiên, số 1.337 không thể được biểu diễn chính xác trong hệ nhị phân, vì vậy nó khác nhau ở dạng 16-bit và 64-bit:

js
Math.f16round(1.337); // 1.3369140625
Math.f16round(1.337) === 1.337; // false

100000 quá lớn so với float 16-bit, vì vậy Infinity được trả về:

js
Math.f16round(100000); // Infinity

Đặc tả kỹ thuật

Specification
ECMAScript® 2027 Language Specification
# sec-math.f16round

Tương thích trình duyệt

Xem thêm