gpt4 book ai didi

java - 货币 double 值的舍入不正确

转载 作者:行者123 更新时间:2023-11-29 03:21:51 25 4
gpt4 key购买 nike

<分区>

我的应用程序中的一些计算有问题。它基本上是某种购物 list 应用程序。用户输入数量和价格。该列表中可能有多达 150 种产品,但通常平均为 20 种左右。

我正在使用 JTextFields,从中获取 Strings 并将它们放入 Arrays。然后我解析 Double 和做我的计算。问题是我有时会从我的数据库中的用户那里得到一个总数,当我验证它是错误的时,例如(我能找到的最短列表有错误):

10 * 27.10
10 * 27.81
Total: 549.08

显然,总数不是549.08,而是549.1

现在,我知道我的计算方法不是最好的,几个月前我就这样做了,当时我对 Java 知之甚少,我就这样离开了,因为它完成了工作而且我没有计算这是非常复杂的。所以我没有转向 BigDecimal,因为我经常进行这种计算,而且从我读到的内容来看,它比 double 和 float 慢很多。

无论如何,这是我的方法:

Double totaltest=0;
for (int j = 0; j < allcant.size(); j++) {

cant[j] = allcant.get(j).getText().toString();
pret[j] = allpret.get(j).getText().toString();
Double temp = Double.parseDouble(cant[j]) * Double.parseDouble(pret[j]);
totaltest = totaltest + temp;
}

问题能从这里出来吗?或者我应该看看我的代码中的其他地方吗?无论如何,我很可能会改变我进行计算的方式,但我想知道什么是最好的计算方式,以及我是否在这里犯了错误。我现在知道了 float 之类的东西,但奇怪的是,当我尝试复制它时,它给出了正确的总数。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com