文字列を整数に変換する方法
JavaScript で文字列を整数に変換する方法
JavaScript では、文字列を整数に変換する方法はいくつかあります。最も一般的な方法は parseInt()
関数と Number()
関数です。
parseInt() 関数
- 例:
- 第二引数として基数(radix)を指定できます。
- 文字列を整数に変換します。
let str = "123";
let int1 = parseInt(str); // 123
let int2 = parseInt("0xFF", 16); // 255 (16進数)
Number() 関数
- 整数だけでなく、浮動小数点数にも変換できます。
let str = "123.45";
let num = Number(str); // 123.45
Math.floor()
関数: 小数部分を切り捨てて整数にします。- 単項プラス演算子
+
: 文字列を数値に変換します。
コード例
let str = "123";
// parseInt()
let int1 = parseInt(str);
console.log(int1); // 123
// Number()
let int2 = Number(str);
console.log(int2); // 123
// 単項プラス演算子
let int3 = +str;
console.log(int3); // 123
注意点
- 基数(radix)を指定する場合は注意が必要です。間違った基数を指定すると、不正な結果になります。
Number()
は文字列全体を解析します。数値以外の文字が含まれる場合、NaN (Not a Number) を返します。parseInt()
は文字列の先頭から数値部分を読み取ります。文字列中に非数値文字が含まれる場合、それ以降の文字は無視されます。
コード例とその解説
let str = "123";
// parseInt()
let int1 = parseInt(str);
console.log(int1); // 123
// Number()
let int2 = Number(str);
console.log(int2); // 123
// 単項プラス演算子
let int3 = +str;
console.log(int3); // 123
parseInt(str);
- console.log(int1);
変換結果を出力します。 - int1
変換後の整数を格納する変数です。 - str
変換したい文字列を指定します。 - parseInt() 関数
文字列を整数に変換する最も一般的な関数です。
Number(str);
- Number() 関数
文字列を数値に変換します。整数だけでなく、浮動小数点数にも変換できます。
+str;
- 単項プラス演算子
文字列の前に+
を付けることで、数値に変換できます。
- 単項プラス演算子:
- parseInt():
- 文字列の先頭から数値部分を読み取ります。
- 第二引数に基数(radix)を指定することで、異なる基数の数を解析できます(例: 16進数)。
- 非数値文字が含まれていても、数値部分までが変換されます。
具体的な使用例
- 特定のフォーマットの文字列を数値に変換
- 日付や時間を表す文字列を数値に変換し、日付計算を行う場合。
- 文字列から数値を抽出して計算
- CSVファイルなどから数値データを抽出して、グラフを作成する場合。
- ユーザー入力の数字を数値として扱う
- ユーザーが入力した年齢や数値を入力フォームから取得し、計算などに利用する場合。
JavaScript で文字列を整数に変換する方法は、parseInt()
、Number()
、単項プラス演算子の3つが一般的です。それぞれの方法に特徴がありますので、状況に応じて適切な方法を選択しましょう。
ポイント
- 浮動小数点数
Number()
は浮動小数点数にも変換できますが、parseInt()
は整数に限定されます。 - 基数の指定
parseInt()
では、第二引数に基数を指定することで、異なる基数の数を解析できます。 - 数値以外の文字が含まれる場合
NaN が返される可能性があります。
より詳しく知りたい場合は、MDN Web Docs の parseInt() のドキュメントを参照してください。
追加で知りたいこと
- 変換時の注意点
- 他の変換方法
- 特定のケースでのコード例
parseInt() と Number() 以外の方法
これまで parseInt()
や Number()
を中心に説明してきましたが、JavaScript には他にも文字列を整数に変換する方法があります。これらの方法を知っておくと、より柔軟なコードを書くことができるでしょう。
ビット演算子 | を利用する方法
let str = "123";
let int = str | 0;
console.log(int); // 123
- デメリット
ビット演算の知識が必要になります。 - メリット
簡潔な書き方で整数に変換できます。 - 仕組み
ビット演算子|
は、2つの数値のビットごとの OR を計算します。数値と 0 の OR を計算すると、数値の部分がそのまま残ります。
Math.floor() を利用する方法
let str = "123.45";
let int = Math.floor(Number(str));
console.log(int); // 123
- デメリット
Number()
を一度利用するため、若干冗長になります。 - メリット
小数点以下を切り捨てたい場合に便利です。 - 仕組み
まずNumber()
で数値に変換し、その後Math.floor()
で小数点以下を切り捨てます。
ES6+ のテンプレートリテラルを利用する方法
let str = "123";
let int = `${str}` - 0;
console.log(int); // 123
- デメリット
少しトリッキーな書き方なので、可読性が落ちる可能性があります。 - メリット
モダンな JavaScript の書き方です。 - 仕組み
テンプレートリテラルの中で文字列を数値に変換し、0 を引くことで数値として扱います。
どの方法を選ぶべきか?
- パフォーマンス
ほとんどの場合、パフォーマンスに大きな差はありません。 - 簡潔な書き方
ビット演算子|
やテンプレートリテラルが便利です。 - 小数点以下を切り捨てたい
Math.floor(Number(str))
が適しています。 - 一般的なケース
parseInt()
が最もシンプルで使いやすいです。
選ぶ際のポイント
- JavaScript のバージョン
ES6+ の機能を利用する場合は、対応している環境であることを確認しましょう。 - パフォーマンス
特にパフォーマンスが重要な箇所では、ベンチマークテストなどで比較検討しましょう。 - コードの可読性
他のプログラマーが理解しやすいコードを書くことを心がけましょう。
JavaScript で文字列を整数に変換する方法は、parseInt()
や Number()
だけではありません。ビット演算子、Math.floor()
、テンプレートリテラルなど、様々な方法があります。それぞれの方法に特徴がありますので、状況に応じて適切な方法を選択しましょう。
重要なのは、どの方法を選ぶにしても、そのコードが意図する動作をしていることをしっかりと理解することです。
- より高度な変換方法
- 各方法の具体的なパフォーマンス比較
- 特定の状況でどの方法が最適か
javascript string integer