文字列を数値に変換 parseInt(string, radix)
数値を表す文字列を10進数の整数の値に変換するには、組み込みのparseInt() 関数を使います。
ユーザーからの入力や、jsonで受け取ったのデータを数値として扱う場合などは、必ずparseInt() で数値に変換してから、処理を行います。
sample (以下すべて chrome 16 で実行しました。)
console.log(parseInt("10px", 10)); //10 stringは、数値と解釈できる文字で始まっていれば、後の変換できない文字は無視される console.log(parseInt("1111", 2)); //15 console.log(parseInt("0xFFFF", 16)); //65535 console.log(parseInt("hoge", 10)); //NaN 数値変換不能な文字列が与えられた場合は、NaN が返る
注意点としては、省略可能な第2引数の radix で、文字列が表している数値の基数を必ず指定することです。
もし radix を指定しないと、自動的に基数が判定されてしまうので、
たとえば、"010" など,"0" で始まる文字列を,頭の0を除いて10進数として扱いたい場合に、"010" は8進数の数値を表現している文字列と解釈され、8 が返されます。
sample
var str = "010" //radix を省略した場合 console.log(parseInt(str)); //8 <= "010" が8進数をあらわす数値として解釈された //"010" を10進数の数値として解釈 console.log(parseInt(str, 10)); //10
数値を文字列に変換する Number.toString(radix)
反対に、10進数で表された数値を、任意の基数で表された数値の文字列に変換する場合は、 NumberオブジェクトのtoString()メソッドを使います。
console.log( (15).toString(2) ); // "1111" console.log( (65535).toString(16) ); // "ffff"
まとめ
- 文字列を数値に変換するには、組み込み関数の parseInt(string, radix) を使う
- parseInt の第2引数には、必ず、文字列があらわしている数値の radix を渡す!
- parseIntの逆で、数値を文字列に変換したい場合はNumber.toString()
参照URL
Ecma-262.pdf 15.1.2.2 parseInt(string, radix)
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
toString - MDN
https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Number/toString
0 件のコメント:
コメントを投稿