-
JavaScriptの浮動小数点数表現の特性 JavaScriptでは、浮動小数点数はIEEE 754規格に基づいて表現されます。この規格では、一部の浮動小数点数は正確に表現できない場合があります。そのため、0を含む一部の浮動小数点数は近似値として表示されることがあります。
-
ゼロを正確に表示する方法 2.1. toFixedメソッドを使用する方法 toFixedメソッドを使用すると、指定した桁数までの正確な小数点以下の表示が可能です。例えば、以下のコードでは0.1を正確に表示します。
const value = 0.1;
const formattedValue = value.toFixed(1);
console.log(formattedValue); // 結果: "0.1"
2.2. Number.EPSILONを使用する方法 Number.EPSILONはJavaScriptの最小の正確な浮動小数点数を表す定数です。これを使用すると、非常に小さな値と0を比較することができます。以下のコードでは、値が非常に小さな差異を持つかどうかをチェックして、0かどうかを判定しています。
function isZero(value) {
return Math.abs(value) < Number.EPSILON;
}
console.log(isZero(0.1 - 0.1)); // 結果: true
console.log(isZero(0.1 - 0.2)); // 結果: false
- 問題の回避策 3.1. 整数として扱う方法 もし浮動小数点数ではなく整数として0を表示したい場合は、以下のようにMath.roundやMath.floorを使用することができます。
console.log(Math.round(0.1)); // 結果: 0
console.log(Math.floor(0.9)); // 結果: 0
3.2. 文字列として扱う方法 もし0を文字列として表示したい場合は、以下のようにtoStringメソッドを使用することができます。
const value = 0;
const formattedValue = value.toString();
console.log(formattedValue); // 結果: "0"