java double数据类型的精度问题:不适合用作金额计算

冯建梅木

单纯的加减运算也是不行的。


public static void main(String[] args) throws Exception {

double[] array = new double[10];

for (int i = 1; i <= 10; i++) {

double d = Double.parseDouble("0.0" + (i < 10 ? "0" + i : i));

array[i - 1] = d;

}

double sum = 0;

for (double d : array) {

sum += d;

System.out.println(d + "\t" + sum);

}

}



0.001 0.001

0.002 0.003

0.003 0.006

0.004 0.01

0.005 0.015

0.006 0.020999999999999998

0.007 0.027999999999999997

0.008 0.036

0.009 0.045

0.01 0.055

用作金额时需要转bigdecimal。

虽然早就知道这么个事情,但是实际使用还是头一次...

主 楼 发布于:2019-05-15 10:51:17回复
我的小号

不用这么复杂

2 楼 发布于:2019-05-15 23:55:43
回复
一个人的天是

岁月流逝,真情依在;百里之隔,隔却不断;长夜漫漫,星光闪闪;真心祈祷,左右陪伴。

3 楼 发布于:2020-04-28 08:39:19
回复
思维1

我对你仰慕犹如滔滔江水连绵不绝,黄河泛滥一发而不可收拾…………我在拉肚子

4 楼 发布于:2021-10-06 23:07:02
回复
苹果之家888

叶子的离开,是因为风的追求还是树的不挽留?

5 楼 发布于:2022-04-11 06:11:01
回复
亚萨园

感动是一回事,爱又是一回事。当然,可以因为感动而去爱,可以因为被爱而去爱,但是感动与被爱不是爱情的必要前提。

6 楼 发布于:2023-06-14 05:47:01
回复

发表回复: