• 締切済み

iアプリでの小数計算の誤差

こんにちは。docomoのiアプリ開発で質問があります。 dojaでは少し前から小数計算が可能になっていますが、double型を使って小数計算をすると、とても激しい誤差がでます。 例えば、  0.3*3 = 0.899999・・・  5*0.78 = 3.9000000000000004 などです。なにか根本的な解決方法はないでしょうか。

みんなの回答

  • MASA_H
  • ベストアンサー率42% (64/151)
回答No.2

浮動小数点があまりに不正確なら固定小数点つまりすべての数値の桁を適当に上げて整数で計算してやれば良いのでは。これなら誤差の管理はしやすいかと。

noname#78739
noname#78739
回答No.1

少数を一度整数にして計算してみたら? double a = 5*(0.78*100)/100;

参考URL:
http://www.nextindex.net/java/class/DecimalTips.html

関連するQ&A