Number.prototype.toFixed()
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æ.
toFixed() 㯠Number å¤ã®ã¡ã½ããã§ãæå®ãããå°æ°ç¹ä»¥ä¸ã®æ¡æ°ã§åºå®å°æ°ç¹è¡¨è¨ã使ç¨ãã¦ãããã®æ°å¤ã表ãæååãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
function financial(x) {
return Number.parseFloat(x).toFixed(2);
}
console.log(financial(123.456));
// äºæ³ãããçµæ: "123.46"
console.log(financial(0.004));
// äºæ³ãããçµæ: "0.00"
console.log(financial("1.23e+5"));
// äºæ³ãããçµæ: "123000.00"
æ§æ
toFixed()
toFixed(digits)
弿°
digitsçç¥å¯-
å°æ°ç¹ã®å¾ã«ç¾ããæ¡ã®æ°ã§ããããã¯
0以ä¸100以ä¸ã®å¤ã§ãããã®å¼æ°ãçç¥ãããã¨ã0ã¨ãã¦æ±ããã¾ãã
è¿å¤
æå®ãããæ°å¤ãåºå®å°æ°ç¹è¡¨è¨ã§è¡¨ãã¾ããæ°å¤ã®å¤§ããï¼ç¬¦å·ãç¡è¦ï¼ã 1021 以ä¸ã®å ´åãç§å¦è¨æ°æ³ã使ç¨ãã¾ãï¼Number.prototype.toString() ã¨åãè¿å¤ï¼ã
ä¾å¤
RangeError-
digitsã0以ä¸100以ä¸ã§ã¯ãªãå ´åã«çºçãã¾ãã TypeError-
ãã®ã¡ã½ããã
Numberã§ã¯ãªããªãã¸ã§ã¯ãä¸ã§å®è¡ãããå ´åã«çºçãã¾ãã
解説
toFixed() ã¡ã½ããã¯ãææ°è¡¨è¨ã使ç¨ããã«ãå°æ°ç¹ä»¥ä¸ã®æ¡æ°ãæ£ç¢ºã« digits æ¡ã§ããæ°å¤ã®æåå表ç¾ãè¿ãã¾ããå¿
è¦ã«å¿ãã¦æ°å¤ã¯ä¸¸ããããå°æ°ç¹ä»¥ä¸ã®æ¡æ°ãæå®ãããé·ãã«åãããããã«å¿
è¦ã«å¿ãã¦ã¼ãã§åãããã¾ãã
æ°å¤ã®çµ¶å¯¾å¤ã 1e+21 以ä¸ã®å ´åã¯ããã®ã¡ã½ããã¯åç´ã« Number.prototype.toString() ãå¼ã³åºããææ°è¡¨è¨ã§ã®æååãè¿ãã¾ããtoFixed() ã¯æ°å¤ãæéæ°ã§ãªãå ´åã"Infinity"ã"NaN"ã"-Infinity" ã®ä½ãããè¿ãã¾ãã
toFixed() ã®åºåã¯ãä¸é¨ã®å¤ã§ã¯ toString() ãããæ£ç¢ºããããã¾ãããããã㯠toString() ãé£ã®æ°å¤ã¨åºå¥ã§ããç¨åº¦ã®æå¹æ°åããåºåããªãããã§ããä¾ãã°ã次ã®ããã«ãªãã¾ãã
(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
ããããé«ããã digits ã®ç²¾åº¦ãé¸ã¶ã¨ã10 鲿°ã®å°æ°ãæµ®åå°æ°ç¹ã§æ£ç¢ºã«è¡¨ããªããããäºæãã¬çµæãè¿ããã¨ãããã¾ããä¾ãã°æ¬¡ã®ããã«ãªãã¾ãã
(0.3).toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
ä¾
>toFixed() ã®ä½¿ç¨
const numObj = 12345.6789;
numObj.toFixed(); // '12346'ã忍äºå
¥ããå°æ°é¨ããªããªã
numObj.toFixed(1); // '12345.7' ãè¿ããåãä¸ã
numObj.toFixed(6); // '12345.678900'ãè¿ãã0 ã追å
(1.23e20).toFixed(2); // '123000000000000000000.00'
(1.23e-10).toFixed(2); // '0.00'
(2.34).toFixed(1); // '2.3'
(2.35).toFixed(1); // '2.4'ãåãä¸ã
(2.55).toFixed(1); // '2.5'
// æµ®åå°æ°ç¹æ°ã§æ£ç¢ºã«è¡¨ãããæãè¿ãæµ®åå°æ°ç¹æ°ã®
// æ¹ãä½ããããåãæ¨ã¦ãããã
(2.449999999999999999).toFixed(1); // '2.5'
// 2.45 ã¨ã®å·®ã Number.EPSILON æªæºãªã®ã§ãåãä¸ã
// ãã®ãªãã©ã«ã¯ãå®éã«ã¯ 2.45 ã¨åãæ°å¤ãã¨ã³ã³ã¼ããã¦ãã
(6.02 * 10 ** 23).toFixed(50); // '6.019999999999999e+23'; å·¨å¤§ãªæ°å¤ã¯ææ°è¡¨è¨ã使ç¨
toFixed() ãè² ã®æ°ã«ä½¿ç¨
ã¡ã³ãã¼ã¢ã¯ã»ã¹ã¯åé ãã¤ãã¹ãããåªå é ä½ãé«ãã®ã§ãæååãåå¾ããããã«ã¯è² ã®æ°ã®å¼å ¨ä½ãã°ã«ã¼ãåããå¿ è¦ãããã¾ãã
-2.34.toFixed(1); // -2.3; æ°å¤
(-2.34).toFixed(1); // '-2.3'
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.prototype.tofixed> |