JavaScriptで2つのfloat値を正確に減算する方法
JavaScriptで浮動小数点数(float)を単純に減算すると、「0.19999999999999998」のような予期しない誤差が発生することがあります。これは、JavaScriptがIEEE 754規格に基づく2進数で数値を内部的に扱っており、一部の10進小数を正確に表現できないことが原因です。
このような誤差を避けて2つのfloat値を正しく減算するには、parseFloat() と toFixed() を組み合わせて使用します。toFixed()で小数点以下の桁数を揃えることで、計算精度を安定させることができます。
サンプルコード
以下が実際のコードです。
var firstValue=4.3;
var secondValue=3.8;
console.log("The first Value="+parseFloat(firstValue).toFixed(1)+" The
second Value="+parseFloat(secondValue).toFixed(1))
var result = parseFloat(firstValue).toFixed(1) -
parseFloat(secondValue).toFixed(1);
console.log("Result is="+result);
上記のプログラムを実行するには、次のコマンドを使用します。
node fileName.js
ここでは、ファイル名を demo309.js としています。
実行結果
上記のプログラムを実行すると、以下の出力が得られます。
PS C:\Users\Amit\javascript-code> node demo309.js The first Value=4.3 The second Value=3.8 Result is=0.5
ポイント解説
toFixed() は数値を指定した小数桁に丸めた文字列を返すメソッドです。そのため、減算の際には JavaScript の暗黙的な型変換によって文字列が数値に変換され、正しい計算結果が得られます。より明示的に処理したい場合は、減算前に Number() や parseFloat() で文字列を数値に戻すと安全です。
また、金額計算などさらに高い精度が求められるケースでは、整数に変換してから計算する方法や、Decimal.js などの専用ライブラリの利用も検討するとよいでしょう。
-
JavaScriptのArray.values()メソッドとは?使い方とサンプルコードを徹底解説
JavaScriptのArray.values()メソッドとは? JavaScriptのArray.values()メソッドは、対象の配列に含まれるすべての値を格納したイテレーターオブジェクトを返します。ES2015(ES6)以降で利用可能なこのメソッドは、for...ofループやスプレッド構文([...arr])と組み合わせることで、配列の各要素を効率的に取り出せます。 なお、keys()やentries()がインデックス情報も一緒に返すのに対し、values()は純粋に「値」だけを順番に提供する点が大きな特徴です。 基本構文 arr.values() 引数は不要で、戻り値として新しいArr
-
JavaScriptでfalsy値(偽と評価される値)を見分ける方法
JavaScriptにおけるfalsy値とはJavaScriptでは、値をBoolean型として評価したときに「false」とみなされる値がいくつか存在します。これらは「falsy値(偽の値)」と呼ばれます。条件分岐や論理演算において、意図しない動作を防ぐために、どの値がfalseと評価されるかを正しく理解しておくことが重要です。JavaScriptでfalseと評価される主な値は以下の通りです。false — Boolean型のfalseそのもの0 — 数値のゼロ空文字列:、、または ``(テンプレートリテラル)null — 値が存在しないことを示す特殊な値undefined — 値が未定義