javascriptで3*0.1が0.30000000000000004になる件について(小数点つきの計算)

タイトルに書いたとおりですが、 javascriptで3*0.1が0.30000000000000004という結果が返ってきます。

そんなバカなと思って調べたのですが、どうやら仕様とのこと。

blog.asial.co.jp

そうは言っても僕は3*0.1をしたら0.3が返って欲しい。

そこでMath.jsというライブラリを導入して解決しました。

方法

今回はwebpackからMath.jsをインストールして計算する方法のサンプルを書きます。

今回のサンプルコードはこちら

javascript 3*0.1=0.30000000000000004 · GitHub

npmでインストールします。 mathjs.org

npm install mathjs --save

index.jsに下記を追加

var math = require('mathjs');
math.config({
  number: 'BigNumber',
  precision: 64
});

math.js | an extensive math library for JavaScript and Node.js

そしてこうすると0.3が返ってきました

math.eval('3*0.1')

完成版はこちら

gist.github.com

以上