Math.fround()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
Math.fround() ã¯éçã¡ã½ããã§ãããæ°å¤ã表ãæãè¿ã 32 ãããå精度浮åå°æ°ç¹æ°ãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(Math.fround(5.5));
// äºæ³ãããçµæ: 5.5
console.log(Math.fround(5.05));
// äºæ³ãããçµæ: 5.050000190734863
console.log(Math.fround(5));
// äºæ³ãããçµæ: 5
console.log(Math.fround(-5.05));
// äºæ³ãããçµæ: -5.050000190734863
æ§æ
Math.fround(doubleFloat)
弿°
doubleFloat-
æ°å¤ã§ãã
è¿å¤
doubleFloat ã®æãè¿ã 32 ãããå精度浮åå°æ°ç¹æ°ã®è¡¨ç¾ã§ãã
解説
JavaScript ã¯å
é¨çã« 64 ãããã®å精度浮åå°æ°ç¹æ°ã使ç¨ãã¦ãããé常ã«é«ã精度ãæä¾ãã¦ãã¾ããããããä¾ãã° Float32Array ããå¤ãèªã¿è¾¼ãå ´åãªã© 32 ãããã®æµ®åå°æ°ç¹æ°ãæ±ããã¨ãããããããã¾ãããããã¯æ··ä¹±ãæãå¯è½æ§ãããã¾ãã 64 ãããã®æµ®åå°æ°ç¹æ°ã¨ 32 ãããã®æµ®åå°æ°ç¹æ°ãçãããã©ããããã§ãã¯ããã¨ãä¸è¦åãããã«è¦ããæ°å¤ã§ãã£ã¦ã失æãããã¨ãããã¾ãã
ããã解決ããã«ã¯ã Math.fround() ã使ç¨ãã¦ã 64 ãããæµ®åå°æ°ç¹æ°ã 32 ãããã®æµ®åå°æ°ç¹æ°ã«ãã£ã¹ããããã¨ãã§ãã¾ããå
é¨çã«ã¯ã JavaScript ã¯æ°å¤ã 64 ãããã®æµ®åå°æ°ç¹æ°ã¨ãã¦æ±ãç¶ãã¾ãããä»®æ°ã® 23 çªç®ã®ãããã«ãå¶æ°ã¸ã®ä¸¸ãããå®è¡ããããã«ç¶ãä»®æ°ãããããã¹ã¦ 0 ã«è¨å®ãã¾ããæ°å¤ã 32 ãããã®æµ®åå°æ°ç¹æ°ã®ç¯å²å¤ã®å ´åã¯ã Infinity ã¾ã㯠-Infinity ãè¿ããã¾ãã
fround() 㯠Math ã®éçã¡ã½ããã§ãããããçæãã Math ãªãã¸ã§ã¯ãã®ã¡ã½ããã¨ãã¦ã§ã¯ãªãã常㫠Math.fround() ã¨ãã¦ä½¿ç¨ããããã«ãã¦ãã ãã (Math ã¯ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ã¯ããã¾ãã)ã
ä¾
>Math.fround() ã®ä½¿ç¨
1.5 ã¨ããæ°å¤ã¯äºé²æ°ã§æ£ç¢ºã«è¡¨ããã¨ãã§ãã32 ããã㨠64 ãããã¨ã§åãã«ãªãã¾ãã
Math.fround(1.5); // 1.5
Math.fround(1.5) === 1.5; // true
ãããã 1.337 ã¨ããæ°å¤ã¯äºé²æ°ã§ã¯æ£ç¢ºã«è¡¨ããã¨ãã§ããã32 ããã㨠64 ãããã¨ã§ç°ãªãã¾ãã
Math.fround(1.337); // 1.3370000123977661
Math.fround(1.337) === 1.337; // false
㯠32 ãããæµ®åå°æ°ç¹ã§ã¯å¤§ããããããã Infinity ãè¿ããã¾ãã
2 ** 150; // 1.42724769270596e+45
Math.fround(2 ** 150); // Infinity
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.fround> |