JavaScriptで小数の計算(decimal.js)
2018/06/04
JavaScriptで小数の計算をすると値がずれることがあった。調べてみるとJavaScriptはIEEE754とかいう規格にそって実装されており、そのせいで誤差が生まれるらしい。自作関数とかで何とかする方法とライブラリで対応する方法があり、ライブラリの方が楽そうだったのでライブラリ使用方法のメモ。
ライブラリをダウンロード
https://github.com/MikeMcl/decimal.js/
使い方
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
var dec = new Decimal(0.001); //足し算 dec = dec.plus(0.001); //引き算 dec = dec.minus(0.001); //掛け算 dec = dec.times(0.001); //割り算 dec = dec.div(0.001); //数字化 var num = dec.toNumber(); //メソッドチェーンみたいにも使える console.log(dec.times(0.01).toNumber()); |
ソース
1 2 3 4 5 6 7 8 9 |
<script type="text/javascript" src="decimal.js"></script> <script> var a = 0.01; var b = 0.0001; console.log(a * b); //0.0000010000000000000002が表示される var dec = new Decimal(a); console.log(dec.times(b).toNumber()); //0.000001が表示される </script> |
参考サイト
関連記事
-
-
javascript:void(0)について
よく使う<a href="javascript:void(0)" oncl ...
-
-
GoogleMapでマーカーをまとめる
GoogleMapAPIでマーカーを複数表示し、近隣のエリアごとにまとめて表示さ ...
-
-
IE&javascriptの予約語
前にもひっかかった問題で、今日同じことで 時間をとられたのでメモ。 予約語? っ ...
-
-
画像をドラッグ&ドロップでアップロード
■2015/04/15追記 以下記事の方が新しくて詳しい。 http://tai ...
-
-
サイトにHTMLエディタ(WYSIWYG)を導入する方法
シンプルで導入が簡単、且つ日本語化されているウィジウィグを探しており、良さそうな ...
-
-
GoogleMapでメインカラーを変更する方法
GoogleMapAPIを用いたMAPでカラー変更をしたかった。カラーコードの指 ...
-
-
GoogleMapAPIで現在地を更新する方法
GoogleMapAPIを使って現在地を取得してその場所にマーカーを設置、その後 ...
-
-
JavaScriptでURLのクエリを取得する
やりたかった事はJavaScriptでGETのクエリを取得。 ■ソース var ...
-
-
highcharts.jsで棒グラフと折れ線グラフを1つのグラフに入れる
やりたかった事は、 ・棒グラフと折れ線グラフを入れたい ・Y軸はそれぞれ違う値に ...
-
-
Flashを用いずJavaScriptでコピー&カット機能を実装する
以前メモったようなFlashを用いる方法ではなく、WebAPIでコピー& ...
- PREV
- 複数のajax処理の結果をまとめて表示
- NEXT
- Highstockの使い方とカスタマイズ