こんにちは、てっちーです。今回はJavascriptで文字列から数値へ、数値から文字列へ変換してみたいと思います。Javascriptは暗黙の変換もできるのですが、明示的に変換してみます。
文字列から数値へ変換する
整数への変換 parseInt(文字列,基数)
parseInt関数は、任意の文字列を整数へ変換する方法です。変換できない場合は、”NaN”を返します。”NaN”はisNaNを使うことで判定もできるので変換できない場合の処理も行うことができます。
var str=("0024");
console.log(parseInt(str));
console.log(parseInt(str,10));
16進数、8進数、2進数としての変換
第2引数を基数として扱うので、第2引数を指定すれば、文字列を16進数や8進数として変換もできます。
var str=("0024");
console.log(str);
console.log(parseInt(str,10)); // 24 10進数
console.log(parseInt(str,16)); // 36 16進数
console.log(parseInt(str,8)); // 20 8進数
str=("11000");
console.log(parseInt(str,2)); // 24
少数への変換 parseFloat(文字列)
parseFloat関数は文字列を浮動小数点数へ変換します。 Cなどの変数でいうfloat型への変換を行います。こちらの関数は第2引数は取らず、すべて10進数で変換されます。
var str=("0024.3578");
console.log(parseInt(str)); // 24.3578
console.log(parseFloat(str,16)); // 24.3578 こっちも10進数で変換されます。
数値から文字列に変換する
numObj.toString(基数)
toStringメソッドは基数を指定して文字列へ変換できるメソッドです。次のように変換できます。基数は、2から36の間で指定できます。基数を範囲外に指定するとはエラーになるので注意してください。
var num=24;
console.log(num.toString()); // 24 10進数
console.log(num.toString(16)); // 18 16進数
console.log(num.toString(2)); // 11000 2進数
余談ですが、数字以外のオブジェクトもtoStringで文字列に変換できそうです。Dateオブジェクトもできそうです。
numObj.toFixed(桁数)
toFixedメソッドは固定少数に文字列変換できます。下記の例では、24.000へ変換されます。
var num=24;
console.log(num.toFixed(3)); // 24.000
まとめ
Javascriptは暗黙の型変換で数字と文字列の変換ができたりしますが、常に変換できるかわからない場合は、明示的に変換した方が良いと思います。たとえばこちらのソート時も数値に変換すると安定します。つい最近、変換できない文字が入るとうまくソートできず、明示的な変換へ変更したことがありました。ぜひ参考にしてみてください。
コメント