JavaScript小数点誤差

JavaScript小数点誤差:

JavaScriptで小数を掛け算などの計算で、誤差が発生します。本番障害を発生して、調べる所、いままで知らなくてびっくりしました。

例えば656000*2.8-180000の所、1656800のはずだが、1656799.9999999998になってしまった。


原因

下記のサイトで記事があります。
https://blog.apar.jp/program/8900/

結論としてほとんどの10進数の「小数」は、2進数に正しく変換できないから


対策

整数に変換してから計算する。

例えば上記の場合、(656000*28)/10に修正


他の言語

調べると、他の言語も同じことでもあります。いままで使ったものが大丈夫でしょうか。

現在JAVAを使っていて、同じ事が発生する可能性があります。

対策など下記のサイトをご参照
https://qiita.com/TKR/items/52635175654b9b818b89

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)