JavaScriptで小数点数の丸め処理を徹底解説!floor、ceil、roundの違いとは?
JavaScriptで浮動小数点数を整数に変換する方法
Math.floor() と Math.ceil()
概要:
Math.floor()
は、浮動小数点数を切り捨てて整数に変換します。
例:
const num1 = 3.14;
const num2 = -2.71;
console.log(Math.floor(num1)); // 出力: 3
console.log(Math.ceil(num1)); // 出力: 4
console.log(Math.floor(num2)); // 出力: -3
console.log(Math.ceil(num2)); // 出力: -2
注意点:
- どちらの方法も、小数点以下の桁を切り捨てまたは切り上げるため、精度が失われる可能性があります。
const num1 = 3.14;
const num2 = 2.71;
console.log(Math.round(num1)); // 出力: 3
console.log(Math.round(num2)); // 出力: 3
- 小数点第1位が5の場合、偶数側に丸められます。
その他の方法
- parseInt(): 文字列を整数に変換する関数です。浮動小数点数を含む文字列を渡すと、小数点以下の桁を切り捨てて整数に変換されます。
- toFixed(): 数値を固定小数点表記に変換する関数です。小数点以下の桁数を指定することで、実質的に整数に変換できます。
これらの方法は、上記の方法よりも特殊なケースで使用されます。
JavaScriptで浮動小数点数を整数に変換するには、いくつかの方法があります。それぞれの方法の特徴と使い分けを理解して、目的に合った方法を選びましょう。
// 1. Math.floor() と Math.ceil()
const num1 = 3.14;
const num2 = -2.71;
console.log(`Math.floor(${num1}) = `, Math.floor(num1)); // 出力: Math.floor(3.14) = 3
console.log(`Math.ceil(${num1}) = `, Math.ceil(num1)); // 出力: Math.ceil(3.14) = 4
console.log(`Math.floor(${num2}) = `, Math.floor(num2)); // 出力: Math.floor(-2.71) = -3
console.log(`Math.ceil(${num2}) = `, Math.ceil(num2)); // 出力: Math.ceil(-2.71) = -2
// 2. Math.round()
const num3 = 3.14;
const num4 = 2.71;
console.log(`Math.round(${num3}) = `, Math.round(num3)); // 出力: Math.round(3.14) = 3
console.log(`Math.round(${num4}) = `, Math.round(num4)); // 出力: Math.round(2.71) = 3
// 3. parseInt()
const num5 = "3.14";
const num6 = "2.71";
console.log(`parseInt(${num5}) = `, parseInt(num5)); // 出力: parseInt("3.14") = 3
console.log(`parseInt(${num6}) = `, parseInt(num6)); // 出力: parseInt("2.71") = 2
// 4. toFixed()
const num7 = 3.1415926535;
const num8 = 2.7182818284;
console.log(`num7.toFixed(0) = `, num7.toFixed(0)); // 出力: num7.toFixed(0) = 3
console.log(`num8.toFixed(1) = `, num8.toFixed(1)); // 出力: num8.toFixed(1) = 2.7
このコードを実行すると、以下のような出力が得られます。
Math.floor(3.14) = 3
Math.ceil(3.14) = 4
Math.floor(-2.71) = -3
Math.ceil(-2.71) = -2
Math.round(3.14) = 3
Math.round(2.71) = 3
parseInt("3.14") = 3
parseInt("2.71") = 2
num7.toFixed(0) = 3
num8.toFixed(1) = 2.7
出力例の説明
Math.floor()
とMath.ceil()
は、小数点以下の桁を切り捨てまたは切り上げて整数に変換します。
浮動小数点数を整数に変換するその他の方法
Bitwise演算
ビット演算を使用して、浮動小数点数を整数に変換することができます。ただし、この方法は複雑で、ビット演算に精通していない人には難解かもしれません。
function floatToIntBitwise(num) {
const view = new DataView(new ArrayBuffer(4));
view.setFloat32(0, num, true);
return view.getInt32(0, true);
}
const num = 3.14;
const intVal = floatToIntBitwise(num);
console.log(intVal); // 出力: 3
- この方法は、すべてのブラウザでサポートされているわけではありません。
- ビット演算に精通していない人には難解かもしれません。
ライブラリの使用
lodash
などのライブラリには、浮動小数点数を整数に変換する関数などが含まれています。ライブラリを使用する方法は、ライブラリによって異なりますが、一般的には以下の手順で行います。
- ライブラリをインストールする。
- 関数を呼び出して、浮動小数点数を整数に変換する。
// ライブラリのインストール
// npm install lodash
// ライブラリのインポート
const _ = require('lodash');
// 関数の呼び出し
const num = 3.14;
const intVal = _.floor(num);
console.log(intVal); // 出力: 3
- ライブラリの使用には、ライブラリのインストールが必要となります。
- ライブラリの関数の使い方は、ライブラリによって異なります。
javascript syntax