JavaScript で浮動小数点数を整数に変換する方法
JavaScript では、浮動小数点数を整数に変換する方法はいくつかあります。それぞれの方法によって、結果の整数の値が異なる場合があります。
メソッド
Math.floor()
- 例: Math.floor(3.14) は 3 を返します。
- 小数点以下を切り捨てます。
Math.ceil()
Math.round()
- 例: Math.round(3.14) は 3 を返します、Math.round(3.5) は 4 を返します。
- 小数点以下を四捨五入します。
- 小数点以下を切り捨てます。Math.floor() と同じ結果になります。
parseInt()
- 例: parseInt("3.14") は 3 を返します。
- 文字列を整数に変換しますが、浮動小数点数は整数部分のみを返します。
コード例
let num = 3.14159;
// 切り捨て
let floorResult = Math.floor(num);
console.log(floorResult); // 出力: 3
// 切り上げ
let ceilResult = Math.ceil(num);
console.log(ceilResult); // 出力: 4
// 四捨五入
let roundResult = Math.round(num);
console.log(roundResult); // 出力: 3
// 切り捨て (Math.trunc() と同じ)
let truncResult = parseInt(num);
console.log(truncResult); // 出力: 3
重要なポイント
- JavaScript には整数型がないため、これらのメソッドはすべて数値を返します。
- parseInt() は文字列を整数に変換するメソッドですが、浮動小数点数を引数として渡すと整数部分のみを返します。
- どのメソッドを使用するかは、必要な結果によって異なります。
JavaScript での浮動小数点数の整数への変換: コード例と解説
コード例と解説
let num = 3.14159;
let result = Math.floor(num);
console.log(result); // 出力: 3
console.log(result)
で結果を出力します。Math.floor(num)
で小数点以下を切り捨てた結果がresult
に代入されます。num
には 3.14159 が代入されています。Math.floor()
は、数値の小数点以下を切り捨てて整数にします。
let num = 3.14159;
let result = Math.ceil(num);
console.log(result); // 出力: 4
- それ以外の処理は
Math.floor()
と同じです。
let num = 3.14159;
let result = Math.round(num);
console.log(result); // 出力: 3
Math.round()
は、数値を四捨五入して整数にします。
let num = 3.14159;
let result = Math.trunc(num);
console.log(result); // 出力: 3
Math.floor()
と同じ結果になります。
let num = "3.14159"; // 文字列として扱う
let result = parseInt(num);
console.log(result); // 出力: 3
- 浮動小数点数の文字列を渡した場合、小数点以下の部分は無視されます。
parseInt()
は、文字列を整数に変換します。
ビット演算子による変換
- 通常は推奨されません。
- パフォーマンス重視の場合に考慮される方法ですが、可読性が低く、誤解を生じやすい可能性があります。
let num = 3.14159;
let result = num | 0;
console.log(result); // 出力: 3
|
はビットごとのOR演算子です。数値を整数に変換する際の最適化手法として使われることがあります。しかし、負の数の扱いやビット操作の理解が必要で、可読性が低下するため、一般的には推奨されません。
String 操作による変換
- 特殊なケースや、文字列処理と組み合わせて使う場合に考慮されます。
let num = 3.14159;
let str = num.toString();
let result = parseInt(str.split('.')[0]);
console.log(result); // 出力: 3
- 数値を文字列に変換し、小数点で分割して整数部分を取り出し、再び整数に変換します。パフォーマンスや可読性の観点から、通常は推奨されません。
- Number.isInteger() メソッド:数値が整数かどうかを判定します。整数である場合はそのまま使用できますが、整数でない場合は別の変換方法が必要になります。
- toFixed() メソッド:小数点以下の桁数を指定して文字列に変換します。その後、parseInt() で整数に変換できますが、パフォーマンスや可読性の観点から推奨されません。
ビット演算子や文字列操作による変換は、一般的には推奨されません。パフォーマンスや可読性の観点から、Math.floor()
, Math.ceil()
, Math.round()
, Math.trunc()
, parseInt()
のいずれかを使用するのが適切です。
javascript syntax