parseInt()
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æ.
parseInt() 颿°ã¯ãæååã®å¼æ°ãè§£éããæå®ãããåºæ° ï¼æ°å¦çè¨æ°æ³ã®åºï¼ã®æ´æ°å¤ãè¿ãã¾ãã
試ãã¦ã¿ã¾ããã
console.log(parseInt("123"));
// 123 (default base-10)
console.log(parseInt("123", 10));
// 123 (explicitly specify base-10)
console.log(parseInt(" 123 "));
// 123 (whitespace is ignored)
console.log(parseInt("077"));
// 77 (leading zeros are ignored)
console.log(parseInt("1.9"));
// 1 (decimal part is truncated)
console.log(parseInt("ff", 16));
// 255 (lower-case hexadecimal)
console.log(parseInt("0xFF", 16));
// 255 (upper-case hexadecimal with "0x" prefix)
console.log(parseInt("xyz"));
// NaN (input can't be converted to an integer)
æ§æ
parseInt(string)
parseInt(string, radix)
弿°
string-
æ´æ°ã§å§ã¾ãæååã§ãããã®å¼æ°ã§ã¯å é ã®ãã¯ã¤ãã¹ãã¼ã¹ã¯ç¡è¦ããã¾ãã
radixçç¥å¯-
2ãã36ã¾ã§ã®æ´æ°ã§ãstringã®åºæ°ï¼æ°å¦çè¨æ°æ³ã®åºï¼ã表ãã¾ãããã㯠32 ãããæ´æ°ã«å¤æããã¾ãã夿å¾ã«ããã 0 ã§ãªãã [2, 36] ã®ç¯å²å¤ã§ãã£ãå ´åããã®é¢æ°ã¯å¸¸ã«NaNãè¿ãã¾ãã0ã¾ãã¯æå®ãããªãã£ãå ´åãåºæ°ã¯stringã®å¤ã«åºã¥ãã¦æ¨æ¸¬ããã¾ããæ¢å®ã§å¸¸ã«10ã«ãªãããã§ã¯ããã¾ãããä¸è¨ã®è§£èª¬ã§ã¯ãradixãæä¾ãããªãã£ãå ´åã«ä½ãèµ·ãããããã£ã¨è©³ç´°ã«èª¬æãã¦ãã¾ãã
è¿å¤
æå®ããã string ãè§£éããæ´æ°å¤ã§ããã¾ããæ¬¡ã®å ´å㯠NaN ãè¿ããã¾ãã
radixã 32 ãããæ´æ°ã«ããå¤ã2ãããå°ããã36ããã大ãããã¾ãã¯- ãã¯ã¤ãã¹ãã¼ã¹ä»¥å¤ã®æåã®æåãæ°å¤ã«å¤æã§ããªãã
ã¡ã¢:
JavaScript ã¯è¨èªã¬ãã«ã§ãæµ®åå°æ°ç¹æ°ãã¨ãæ´æ°ãã®åºå¥ãããã¾ããã parseInt() 㨠parseFloat() ã¯è§£éã®åä½ãç°ãªãã ãã§ãå¿
ãããè¿å¤ãç°ãªãããã§ã¯ããã¾ãããä¾ãã°ã parseInt("42") 㨠parseFloat("42") ã¯åãå¤ã§ããæ°å¤åã® 42 ãè¿ãã¾ãã
解説
parseInt 颿°ã¯ç¬¬ 1 弿°ãæååã«å¤æããè§£éããããã§ãæ´æ°ã¾ã㯠NaN ãè¿ãã¾ãã
NaN ã§ãªãå ´åã¯ãè¿å¤ã¯ç¬¬ 1 弿°ãæå®ããã radix ã§æ°å¤ã¨ãã¦è§£éããæ´æ°å¤ã«ãªãã¾ãã(ä¾ãã°ãradix ã 10 ã§ããã° 10 鲿°ããã®å¤æã§ã8 ã§ããã° 8 鲿°ããã®å¤æã§ã16 ã§ããã° 16 鲿°ããã®å¤æããªã©ã§ãã)
radix 弿°ã¯æ°å¤ã«å¤æããã¾ããæä¾ãããªãã£ãå ´åãã¾ãã¯å¤ã 0ãNaNãInfinity ã®ããããã§ãã£ãå ´åï¼undefined 㯠NaN ã«å¼·å¶ããã¾ãï¼ã JavaScript ã¯ä»¥ä¸ã®ããã«æ³å®ãã¾ãã
- å
¥åããã
stringã®å é ã®ãã¯ã¤ãã¹ãã¼ã¹ã¨ãåå¨ããã°+/-符å·ãé¤å»ããã0xã¾ãã¯0Xï¼ã¼ããå¾ããã¨ä»¥ä¸ã§å°æåã¾ãã¯å¤§æåã® Xï¼ã§å§ã¾ã£ã¦ããå ´åãradixã¯16ã¨ã¿ãªãããæååã®æ®ãã®é¨å㯠16 鲿°ã¨ãã¦è§£éããã¾ãã - å
¥åããã
stringãä»ã®ä½ããã®å¤ã§å§ã¾ãå ´åãåºæ°ã¯10ï¼10 鲿°ï¼ã«ãªãã¾ãã
ã¡ã¢:
ä»ã«ã 0b ã®ãããªæ¥é è¾ã¯æ°å¤ãªãã©ã«ã§ã¯æå¹ã§ããã parseInt() ã§ã¯éå¸¸ã®æ°åã¨ãã¦æ±ããã¾ãã parseInt() 㯠0 ã§å§ã¾ãæååã 8 鲿°ã®å¤ã¨ãã¦æ±ããã¨ã¯ããã¾ããã parseInt() ãèªèã§ããæ¥é è¾ã¯ã16 鲿°ã®å¤ã«å¯¾ãã 0x ã¾ã㯠0X ã ãã§ãã radix ããªããã°ããã以å¤ã¯ãã¹ã¦ 10 鲿°ã¨ãã¦è§£éããã¾ãã Number() ã¾ã㯠BigInt() ã使ç¨ãã¦ããããã®æ¥é è¾ãè§£éãããã¨ãã§ãã¾ãã
åºæ°ã 16 ã®å ´åã parseInt() ã§ã¯ããªãã·ã§ã³ã§ç¬¦å·æå (+/-) ã®å¾ã« 0x ã¾ã㯠0X ãæ¥é è¾ã¨ãã¦æååãæå®ãããã¨ãã§ãã¾ãã
ï¼å¿
è¦ã«å¿ãã¦æ°å¤ã«å¤æãããï¼åºæ°ã®å¤ã [2, 36] ï¼ä¸¡ç«¯ãå«ãï¼ã®ç¯å²ã«ãªãã£ãå ´åã¯ã parseInt 㯠NaN ãè¿ãã¾ãã
10 以ä¸ã®åºæ°ã«ã¤ãã¦ã¯ã9 ãã大ããæ°åã¯ã¢ã«ãã¡ãããã§ç¤ºããã¾ãããã¨ãã°ã 16 鲿°ï¼åºæ° 16ï¼ã§ã¯ A ãã F ãç¨ãããã¾ããæåã®å¤§æåå°æåã¯åºå¥ãã¾ããã
parseInt 㯠2 ã¤ã®ç¬¦å·ãæ£ç¢ºã«çè§£ãã¾ãã+ ã¯æ£ã®ç¬¦å·ã§ã- ã¯è² ã®ç¬¦å·ã§ããããã¯è§£éã®æåã®æ®µéã§ããã¯ã¤ãã¹ãã¼ã¹ãé¤å»ããå¾ã«è¡ããã¾ãã符å·ãè¦ã¤ãããªãã£ãå ´åã¯ãã¢ã«ã´ãªãºã ã¯æ¬¡ã®æ®µéã«ç§»è¡ãã¾ããããã§ãªããã°ã符å·ãåãé¤ãã¦æ®ãã®æååã®æ°å¤ã®è§£éãå®è¡ãã¾ãã
parseInt ã¯ãå
¥åæååã®ä¸ã§ãæå®ããã radix ã§æå¹ãªæ°åã§ã¯ãªãæåãè¦ã¤ããå ´åããã®æåã¨ãã以éã®ãã¹ã¦ã®æåãç¡è¦ãããã®æç¹ã¾ã§ã«æ§æè§£æããæ´æ°å¤è¿ãã¾ããä¾ãã°ãparseInt("2", 2) ã¯ã2 㯠2 鲿°ã§ã¯æå¹ãªæ°åã§ã¯ãªããããNaN ãè¿ãã¾ããä¾ãã°ã 1e3 ã¯æè¡çã«ã¯æ´æ°ãã¨ã³ã³ã¼ããããã®ã§ãããï¼ãã㦠parseFloat() ã§ã¯æ£ãã 1000 ã¨è§£éããã¾ããï¼ã parseInt("1e3", 10) 㯠1 ãè¿ãã¾ãã e ã¯åºæ° 10 ã®æå¹ãªæ°åã§ã¯ãªãããã§ãã . ãæ°åã§ã¯ãªãã®ã§ãè¿å¤ã¯å¸¸ã«æ´æ°ã«ãªãã¾ãã
æåã®æåã使ç¨ãã¦ããåºæ°ã§æ°åã«å¤æã§ããªãã£ãå ´åã¯ã parseInt 㯠NaN ãè¿ãã¾ããå
é ã®ãã¯ã¤ãã¹ãã¼ã¹ã¯è¨±å®¹ããã¾ãã
æ°å¤æ¼ç®ã®ç®çã§ã¯ãNaN ã¯åºæ°ãããã¤ã§ãã£ã¦ãæ°å¤ã«ã¯ãªãã¾ããã Number.isNaN 颿°ã使ãã¨ã parseInt ã®çµæã NaN ã§ãããã©ãã確ããããã¾ããæ°å¤æ¼ç®ã§ NaN ãä¸ããããã¨ãæ¼ç®çµæã NaN ã«ãªãã¾ãã
å·¨å¤§ãªæ°å¤ã§ã¯ e ã®æåãæåå表ç¾ã®ä¸ã§ä½¿ç¨ãã¾ãã®ã§ï¼ä¾ãã° 6.022E23 㯠6.022 à 10^23 ã表ãã¾ãï¼ãparseInt ã使ç¨ãã¦æ°å¤ãåãæ¨ã¦ãã¨ãã¨ã¦ã大ããªæ°åãã¨ã¦ãå°ããªæ°åã使ç¨ããéã«äºæããªãçµæãçã¿åºããã¨ãããã¾ãã parseInt ã Math.trunc() ã®ä»£ç¨ã¨ãã¦ä½¿ãã¹ãã§ã¯ããã¾ããã
æ°å¤ãåºæ°ãæå®ãã¦ãã®æåå表ç¾ã«å¤æããã«ã¯ãthatNumber.toString(radix) ãç¨ãã¾ãã
parseInt() ã¯æ°å¤ãè¿ãã®ã§ãæååãè¡¨ãæ´æ°ãå®å
¨ãªç¯å²ã®å¤ã®å ´åã精度ãè½ã¡ãå¯è½æ§ãããã¾ãã BigInt() 颿°ã¯ BigInt ãè¿ããã¨ã§ãä»»æã®é·ãã®æ´æ°ãæ£ç¢ºã«è§£éãããã¨ã«å¯¾å¿ãã¦ãã¾ãã
ä¾
>parseInt() ã®ä½¿ç¨
以ä¸ã®ä¾ã¯ãããã 15 ãè¿ãã¾ãã
parseInt("0xF", 16);
parseInt("F", 16);
parseInt("17", 8);
parseInt("015", 10);
parseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15 * 3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);
以ä¸ã®ä¾ã¯ãããã NaN ãè¿ãã¾ãã
parseInt("Hello", 8); // ã¾ã£ããæ°åã§ã¯ãªã
parseInt("546", 2); // 2 鲿°ã§ã¯ 0 ã¾ã㯠1 以å¤ã®æ°åã¯ç¡å¹
以ä¸ã®ä¾ã¯ãããã -15 ãè¿ãã¾ãã
parseInt("-F", 16);
parseInt("-0F", 16);
parseInt("-0XF", 16);
parseInt("-17", 8);
parseInt("-15", 10);
parseInt("-1111", 2);
parseInt("-15e1", 10);
parseInt("-12", 13);
以ä¸ã®ä¾ã¯ 224 ãè¿ãã¾ãã
parseInt("0e0", 16);
parseInt() 㯠BigInt ã®å¤ãæ±ãã¾ããã n ã®æåã§è§£éã忢ããããã¾ã§ã®æååãéå¸¸ã®æ´æ°ã¨ãã¦æ±ãããã精度ãè½ã¡ãå¯è½æ§ãããã¾ãã
parseInt("900719925474099267n");
// 900719925474099300
代ããã«ãæååãæ«å°¾ã® n ãªãã§ BigInt() 颿°ã«æ¸¡ãã¦ãã ããã
BigInt("900719925474099267");
// 900719925474099267n
parseInt ã¯æ°å¤ã®åºåãæåãæ±ããã¨ãã§ãã¾ããã
parseInt("123_456"); // 123
æååã§ãªããã®ã«å¯¾ãã parseInt() ã使ç¨
parseInt() ã¯ãæååã§ãªããã®ã大ããªåºæ°ã§æ±ãå ´åã«è峿·±ãçµæããããããã¨ãããã¾ããä¾ãã°ã 36 ã®å ´åã§ãï¼ããã¯ãã¹ã¦ã®è±æ°åãæå¹ãªæ°åã«ãã¾ãï¼ã
parseInt(null, 36); // 1112745: "null" ã®æåå㯠36 鲿°ã§ 1112745
parseInt(undefined, 36); // 86464843759093: "undefined" ã®æåå㯠36 鲿°ã§ 86464843759093
ä¸è¬ã«ãparseInt() ãæåå以å¤ã§ä½¿ç¨ãããã¨ãç¹ã« Math.trunc() ã®ä»£ç¨ã¨ãã¦ä½¿ç¨ããã®ã¯è¯ããªãèãã§ããå°ããªæ°ã§ã¯ä½¿ããããããã¾ããã
parseInt(15.99, 10); // 15
parseInt(-15.1, 10); // -15
ããããããã¯ãã¾ãã¾ããã®æ°å¤ã®æåå表ç¾ãåºæ¬çãªå°æ°è¡¨è¨ ("15.99", "-15.1") ã使ç¨ãã¦ããã parseInt() ãå°æ°ç¹ã§æ¢ã¾ã£ã¦ããããã«ãã¾ãåä½ãã¦ããã ãã§ãã 1e+21 以ä¸ã¾ã㯠1e-7 以ä¸ã®æ°å¤ã¯ãæåå表ç¾ã«ææ°è¡¨è¨ ("1.5e+22", "1.51e-8") ã使ç¨ããããã parseInt() ã¯å¸¸ã«æåã®æ¡ã®å¾ã«æ¥ã e ã®æåã¾ãã¯å°æ°ç¹ã§åæ¢ãã¾ããã¤ã¾ãã大ããªæ°ã§ãå°ããªæ°ã§ãã parseInt() 㯠1 æ¡ã®æ´æ°ãè¿ãã¨ãããã¨ã§ãã
parseInt(4.7 * 1e22, 10); // å·¨å¤§ãªæ°å¤ã 4 ã«ãªã
parseInt(0.00000000000434, 10); // 極å°ã®æ°å¤ã 4 ã«ãªã
parseInt(0.0000001, 10); // 1
parseInt(0.000000123, 10); // 1
parseInt(1e-7, 10); // 1
parseInt(1000000000000000000000, 10); // 1
parseInt(123000000000000000000000, 10); // 1
parseInt(1e21, 10); // 1
仿§æ¸
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-parseint-string-radix> |