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비트 반정밀도 부동소수점 표현을 반환합니다.
시도해보기
구문
Math.f16round(doubleFloat)
매개변수
doubleFloat
-
숫자.
반환 값
doubleFloat
의 가장 가까운 16비트 반정밀도 부동소수점 표현.
설명
Math.f16round
는 Math.fround()
의 16비트 버전입니다. 이는 Float16Array
에서 읽을 때와 같이 float16 숫자와 상호 작용할 때 발생하는 일부 문제점을 해결하기 위한 것입니다. 내부적으로 JavaScript는 여전히 숫자를 64비트 부동소수점으로 취급하지만, 가수의 10번째 비트에서 "짝수로 반올림"을 수행하고 이후의 모든 가수 비트를 0
으로 설정합니다. 숫자가 16비트 부동소수점의 범위를 벗어나면 Infinity
또는 -Infinity
가 반환됩니다.
f16round()
는 Math
의 정적 메서드이므로, 생성한 Math
객체의 메서드로 사용하는 것이 아니라 항상 Math.f16round()
로 사용합니다(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
명세서
Specification |
---|
Float16Array # sec-math.f16round |
브라우저 호환성
BCD tables only load in the browser