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 で解消していたらしい。