JavaScriptで文字列(String)を数値(Number)に変換するさまざまな方法を紹介します。
1. Number()
で文字列を数値に変換
Number()
は引数に渡された文字列を Number に変換します。数値以外の文字や undefined などを引数に渡すと、 NaN(Not A Number)
を返します。 NaNの意味は数字ではないということですが、NaNオブジェクトの型を見るとnumberです。ここでNaNは数字で表現できませんが、オブジェクトの型はNumberと見なすことができます。
const str = '1234';
const num1 = Number(str);
const num2 = Number('1234.5');
const num3 = Number(undefined);
const num4 = Number('abcd');
console.log(num1 + ', ' + typeof num1);
console.log(num2 + ', ' + typeof num2);
console.log(num3 + ', ' + typeof num3);
console.log(num4 + ', ' + typeof num4);
Output:
1234, number
1234.5, number
NaN, number
NaN, number
NaNがなぜnumber型を返すのかをもっと知りたいのなら、StackOverflow - Why does typeof NaN return 'number'?の答えを参照してください。
2. parseInt()
で文字列を数値に変換
parseInt()
は引数に渡された文字列を整数の Number に変換します。素数を持つ実数は整数に変換されるため、この部分を考慮する必要があります。
const str = '1234';
const num1 = parseInt(str);
const num2 = parseInt('1234.5');
const num3 = parseInt(undefined);
const num4 = parseInt('abcd');
console.log(num1 + ', ' + typeof num1);
console.log(num2 + ', ' + typeof num2);
console.log(num3 + ', ' + typeof num3);
console.log(num4 + ', ' + typeof num4);
Output:
1234, number
1234, number
NaN, number
NaN, number
3. parseFloat()
で文字列を数値に変換
素数を持っている実数を文字列に変換するときは、 parseFloat()
を使ってください。
const str = '1234';
const num1 = parseFloat(str);
const num2 = parseFloat('1234.5');
const num3 = parseFloat(undefined);
const num4 = parseFloat('abcd');
console.log(num1 + ', ' + typeof num1);
console.log(num2 + ', ' + typeof num2);
console.log(num3 + ', ' + typeof num3);
console.log(num4 + ', ' + typeof num4);
Output:
1234, number
1234.5, number
NaN, number
NaN, number
4. Mathで文字列を数値に変換
Math の ceil(切り上げ), round(切り上げ), floor(切り捨て) メソッドは引数として文字列を受け取り、数値に変換します。切り上げ、丸め、切り捨てなどの処理をして整数に変換されるため、少数を持っている実数は整数に変換されることを考慮する必要があります。
const str = '1234.1';
const num1 = Math.ceil(str);
const num2 = Math.floor('1234.6');
const num3 = Math.round('1234.5');
const num4 = Math.round('1234.4');
console.log(num1 + ', ' + typeof num1);
console.log(num2 + ', ' + typeof num2);
console.log(num3 + ', ' + typeof num3);
console.log(num4 + ', ' + typeof num4);
Output:
1235, number
1234, number
1235, number
1234, number
ちなみに、Mathは文字列以外の数字も引数として受け取ることができ、結果は上記と同じです。
const num1 = Math.ceil(1234.1);
const num2 = Math.floor(1234.6);
const num3 = Math.round(1234.5);
const num4 = Math.round(1234.4);
console.log(num1 + ', ' + typeof num1);
console.log(num2 + ', ' + typeof num2);
console.log(num3 + ', ' + typeof num3);
console.log(num4 + ', ' + typeof num4);
Output:
1235, number
1234, number
1235, number
1234, number
References
Related Posts
- JavaScript - 現在のタイムスタンプを取得する
- Node.js - ファイル、ディレクトリの削除
- JavaScript - 文字列 空白 削除
- JavaScript sort() 関数、例の紹介
- JavaScript Set delete() 関数、値の削除
- JavaScript - 実行時間の測定方法
- JavaScript - 配列をオブジェクトに変換する4つの方法
- JavaScript - Mapの作成と初期化、3つの方法
- JavaScript - Map巡回、3つの方法
- JavaScript - Mapソート(キーまたはvalueでソート)
- JavaScript - オブジェクトに特定の値が存在することを確認する
- JavaScript - 数値がNaNであるかどうかを確認する方法
- JavaScript Enum (列挙型)
- JavaScript - 日付/時刻比較、3つの 方法
- JavaScript - 空の文字列の確認、2つの方法
- JavaScript - 最後の文字を削除する、4つの方法
- JavaScript - 配列を文字列に変換、3つの方法
- JavaScript - 複数行の文字列、3つの方法
- JavaScript - オブジェクトを文字列に変換する2つの方法
- JavaScript - 配列から重複排除、4つの方法
- JavaScript - 文字列の比較方法、5つの方法
- JavaScript - 文字列から数字のみを抽出する
- JavaScript - 配列のソート方法(昇順、降順)
- JavaScript - 文字列 切り出し(split、substr、substring、slice)
- JavaScript - Setを配列(Array)に変換する
- JavaScript - 文字列を配列(Array)に変換
- JavaScript - 関数の宣言方法
- JavaScript - 配列宣言、追加、削除などの基本的 な使用法のクリーンアップ
- JavaScript - 文字列を数値に変換する方法
- JavaScript - 文字列を結合する、接続する(concat、join、+)