【JavaScript】数値→文字列、文字列→数値の変換
問題
JavaScriptでの、数値→文字列、文字列→数値の変換はどうするのがいいですか。
答え
数値→文字列
var num = 123; String(num); // "123" num.toString(10); // "123" num.toFixed() // "123" num + ''; // "123" '' + num; // "123"
var num = 123.45678; String(num); // "123.45678" num.toString(10); // "123.45678" num.toFixed() // "123" num + ''; // "123.45678" '' + num; // "123.45678"
var num = -9999999123.45678; String(num); // "-9999999123.45678" num.toString(10); // "-9999999123.45678" num.toFixed() // "-9999999123" num + ''; // "-9999999123.45678" '' + num; // "-9999999123.45678"
文字列→数値
var str = '123'; Number(str); // 123 parseInt(str, 10); // 123 parseFloat(str); // 123 str - 0; // 123 str * 1; // 123 str / 1; // 123 +str; // 123 -(-str); // 123 ~~str; // 123 str&-1; // 123 str|0; // 123 str^0; // 123 str>>0; // 123 str<<0; // 123
var str = '123.45678'; Number(str); // 123.45678 parseInt(str, 10); // 123 parseFloat(str); // 123.45678 str - 0; // 123.45678 str * 1; // 123.45678 str / 1; // 123.45678 +str; // 123.45678 -(-str); // 123.45678 ~~str; // 123 str&-1; // 123 str|0; // 123 str^0; // 123 str>>0; // 123 str<<0; // 123
var str = '-123.45678'; Number(str); // -123.45678 parseInt(str, 10); // -123 parseFloat(str); // -123.45678 str - 0; // -123.45678 str * 1; // -123.45678 str / 1; // -123.45678 +str; // -123.45678 -(-str); // -123.45678 ~~str; // -123 str&-1; // -123 str|0; // -123 str^0; // -123 str>>0; // -123 str<<0; // -123
var str = '-9999999123.45678'; Number(str); // -9999999123.45678 parseInt(str, 10); // -9999999123 parseFloat(str); // -9999999123.45678 str - 0; // -9999999123.45678 str * 1; // -9999999123.45678 str / 1; // -9999999123.45678 +str; // -9999999123.45678 -(-str); // -9999999123.45678 ~~str; // -1410064531 str&-1; // -1410064531 str|0; // -1410064531 str^0; // -1410064531 str>>0; // -1410064531 str<<0; // -1410064531
結局どれがよいか
数値 → 文字列(あまり必要ない気はする)
'' + num
文字列 → 数値
str - 0
+str
このあたりがよいと思います。
コメント