TypeScript で文字列から数値型に変換する方法
TypeScript において文字列 (string) で表現された数字を、数値型 (number) に変換する方法をいくつか調べた。
const str = '16';
// 第2引数を省略すると10進数として解釈される
const num1 = parseInt(str);
// 第2引数を指定しても良い
const num2 = parseInt(str, 10);
// 小数をそのまま残すには parseFloat() を使う
const num3 = parseFloat(str);
// 先頭に + を付けるだけで変換可能
const num4 = +str;
// Number() のコンストラクタ引数として渡す
const num5 = Number(str);
いずれも同じように、10進数で変換できる。
string | number |
---|---|
'16' | 16 |
'016' | 16 |
'-16' | -16 |
'-016' | -16 |
'16.5' | 16.5 |
'016.5' | 16.5 |
'-16.5' | -16.5 |
'-016.5' | -16.5 |
当たり前だが、小数に parseInt()
を使うと整数になるので、そこだけは注意。
0 始まりの数値が8進数に解釈されてしまう問題は ECMAScript5 で解消していたらしい。