Math.f16round()
Базовая версия Недавно доступно
Эта функция работает на новейших устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или версиях браузеров. Она доступна во всех браузерах с апреля 2025 года.
Статический метод Math.f16round() возвращает ближайшее 16-битное представление числа с плавающей запятой половинной точности 16-bit half precision.
Попробуйте
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
Синтаксис
Math.f16round(doubleFloat)
Параметры
-
doubleFloat - Число.
Возвращаемое значение
Ближайшее 16-битное представление числа с плавающей запятой половинной точности 16-bit half precision для doubleFloat.
Описание
Math.f16round является 16-битным аналогом Math.fround(). Он предназначен для сглаживания некоторых шероховатостей при работе с числами float16, например, при чтении из Float16Array. Внутренне JavaScript продолжает рассматривать число как 64-битное число с плавающей запятой, но выполняет "округление до ближайшего четного" по 10-му биту мантиссы и устанавливает все последующие биты мантиссы в 0. Если число выходит за пределы диапазона 16-битного числа с плавающей запятой, возвращается Infinity или -Infinity.
Поскольку f16round() является статическим методом Math, вы всегда используете его как Math.f16round(), а не как метод созданного вами объекта Math (Math не является конструктором).
Примеры
Использование Math.f16round()
Число 1.5 может быть точно представлено в двоичной системе счисления и идентично в 16-битном и 64-битном формате:
Math.f16round(1.5); // 1.5 Math.f16round(1.5) === 1.5; // true
Однако число 1.337 не может быть точно представлено в двоичной системе счисления, поэтому оно отличается в 16-битном и 64-битном формате:
Math.f16round(1.337); // 1.3369140625 Math.f16round(1.337) === 1.337; // false
100000 слишком велико для 16-битного числа с плавающей запятой, поэтому возвращается Infinity:
Math.f16round(100000); // Infinity
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
f16round |
135 |
135 |
129 |
120 |
18.2 |
135 |
129 |
89 |
18.2 |
29.0 |
135 |
18.2 |
1.1.23 |
1.43 |
24.0.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/f16round