JavaScript - 文字列を数値に変換する方法

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

codechachaCopyright ©2019 codechacha