Math.f16round()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Math.f16round() 정적 메서드는 숫자의 가장 가까운 16비트 반정밀도 부동소수점 표현을 반환합니다.

시도해보기

구문

js
Math.f16round(doubleFloat)

매개변수

doubleFloat

숫자.

반환 값

doubleFloat의 가장 가까운 16비트 반정밀도 부동소수점 표현.

설명

Math.f16roundMath.fround()의 16비트 버전입니다. 이는 Float16Array에서 읽을 때와 같이 float16 숫자와 상호 작용할 때 발생하는 일부 문제점을 해결하기 위한 것입니다. 내부적으로 JavaScript는 여전히 숫자를 64비트 부동소수점으로 취급하지만, 가수의 10번째 비트에서 "짝수로 반올림"을 수행하고 이후의 모든 가수 비트를 0으로 설정합니다. 숫자가 16비트 부동소수점의 범위를 벗어나면 Infinity 또는 -Infinity가 반환됩니다.

f16round()Math의 정적 메서드이므로, 생성한 Math 객체의 메서드로 사용하는 것이 아니라 항상 Math.f16round()로 사용합니다(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

명세서

Specification
Float16Array
# sec-math.f16round

브라우저 호환성

BCD tables only load in the browser

같이 보기