- - PR -
double型について
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-04-30 13:24
いつもお世話になっております。
実は、double型で悩んでおります。 下記のようなクラスを作成したのですが、 prodCenterYの値が「19519.989999999998」となります。 期待した値は、「19519.99」なのですが。。。 どうすればきたい通りの値になるでしょうか? 宜しく御願いします。 public class A { public static void main(String[] args) { double prodLLy = 10495.24; double prodURy = 28544.74; double prodCenterY = prodLLy + (prodURy - prodLLy)/2; } } | ||||
|
投稿日時: 2004-04-30 14:03
Javaは良く分からないのですが、
(prodURy + prodLLy)/2 にしてみてはどうでしょうか。 | ||||
|
投稿日時: 2004-04-30 14:19
浮動小数点データを使って演算を行う場合、このような誤差が発生するのは避けられません。 このような誤差が許容できないのであれば、浮動小数点型(double、float)はではなく BigDecimalを使うべきです。 | ||||
|
投稿日時: 2004-04-30 14:31
ここによい説明がされていますよ.
参考にしてくださいな. http://msugai.fc2web.com/java/class/BigDecimal.html | ||||
|
投稿日時: 2004-04-30 14:33
ここによい説明がされていますよ。
参考にしてくださいな。 http://msugai.fc2web.com/java/class/BigDecimal.html | ||||
|
投稿日時: 2004-04-30 16:28
書込みしてくださった皆さん有難う御座います。
早速、やらせて頂きます。 | ||||
|
投稿日時: 2004-04-30 22:08
参考
Excelの演算誤差 http://oku.edu.mie-u.ac.jp/~okumura/software/excel/roundoff.html StarSuite 7 の表計算でも 19519.99 になりました。 | ||||
1
