Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-math.f16round

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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

См. также

  • Polyfill of Math.f16round in core-js
  • es-shims polyfill of Math.f16round
  • Math.fround()
  • Math.round()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API