Number.prototype.toFixed()
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Number å¼ç toFixed() æ¹æ³ä½¿ç¨å®ç¹è¡¨ç¤ºæ³æ¥æ ¼å¼å该æ°å¼ã
å°è¯ä¸ä¸
function financial(x) {
return Number.parseFloat(x).toFixed(2);
}
console.log(financial(123.456));
// Expected output: "123.46"
console.log(financial(0.004));
// Expected output: "0.00"
console.log(financial("1.23e+5"));
// Expected output: "123000.00"
è¯æ³
toFixed()
toFixed(digits)
åæ°
digitså¯é-
å°æ°ç¹åç使°ãåºè¯¥æ¯ä¸ä¸ªä»äº
0å100ä¹é´çå¼ï¼å æ¬0å100ã妿è¿ä¸ªåæ°è¢«çç¥ï¼å被è§ä¸º0ã
è¿åå¼
使ç¨å®ç¹è¡¨ç¤ºæ³è¡¨ç¤ºç»å®æ°åçå符串ã
å¼å¸¸
RangeError-
妿
digits䏿¯ä»äº0å100ä¹é´ï¼å«ä¸¤ç«¯ï¼çå¼ï¼åæåºè¯¥å¼å¸¸ã TypeError-
妿䏿¯å¨
Numberä¸è°ç¨è¯¥æ¹æ³ï¼åæåºè¯¥å¼å¸¸ã
æè¿°
toFixed() æ¹æ³è¿åä¸ä¸ªè¡¨ç¤º numObj çå符串ï¼ä½ä¸ä½¿ç¨ææ°è®¡æ°æ³ï¼å¹¶ä¸å°æ°ç¹åæç²¾ç¡®å° digits ä½çæ°åã妿éè¦æªæï¼åå°æ°ååèäºå
¥ï¼å¦æå°æ°ä½æ°ä¸è¶³ï¼åå°æ°é¨åç¨é¶å¡«å
ï¼ä»¥ä½¿å
¶å
·ææå®é¿åº¦ã
妿 numObj çç»å¯¹å¼å¤§äºæçäº 1021ï¼åè¯¥æ¹æ³ä½¿ç¨ä¸ Number.prototype.toString() ç¸åçç®æ³ï¼å¹¶ä»¥ææ°è®¡æ°æ³è¿åå符串ã妿 numObj çå¼ä¸æ¯æéçï¼å toFixed() ä¼è¿å "Infinity"ã"NaN" æ "-Infinity"ã
toFixed() å¯¹äºæäºå¼å¯è½å
·ææ¯ toString æ´å 精确çè¾åºï¼å 为 toString() åªè¾åºè¶³å¤çæææ°åæ¥åºå该æ°å¼ä¸é»è¿çæ°å¼ãä¾å¦ï¼
(1000000000000000128).toString(); // '1000000000000000100'
(1000000000000000128).toFixed(0); // '1000000000000000128'
ç¶èï¼éæ©ä¸ä¸ªè¿é«ç digits 精度ä¼å¯¼è´æå¤çç»æï¼å ä¸ºå°æ°é¨åçæ°åä¸è½ç²¾ç¡®å°è¡¨ç¤ºææµ®ç¹æ°ãä¾å¦ï¼
(0.3).toFixed(50); // '0.29999999999999998889776975374843459576368331909180'
示ä¾
>ä½¿ç¨ toFixed()
const numObj = 12345.6789;
numObj.toFixed(); // '12346'ï¼åèäºå
¥ï¼æ²¡æå°æ°é¨å
numObj.toFixed(1); // '12345.7'ï¼åä¸èå
¥
numObj.toFixed(6); // '12345.678900'ï¼ç¨é¶è¡¥è¶³ä½æ°
(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'
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-number.prototype.tofixed> |