关于Double数值相加的问题

Lyle Lyle 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:


//计算总金额
it = null;
Double countfree=0.0;
it = list2.iterator();
while (it.hasNext()) {
Object[] obj = (Object[]) it.next();
obj[31] = obj[31]==null ? 0.0 : obj[31];
countfree += Double.valueOf(obj[31].toString());
}
DecimalFormat df = new DecimalFormat("0.00");
String num = df.format(countfree);

将list2中一个数值字段进行累加,有个别会出现 1.083306722E7 这样的值,为什么会这样? 怎么处理?
如果有更好的累加方法也望分享下
...全文

相关推荐

程序中两个Double类型相加出现误差的解决办法

今天在自己做的系统中,发现了一个奇怪的现象:几个Double类型的数据相加,到最后得出的金额比正确数值总是少了几毛钱。以为是程序里的计算方法有问题,可是排查了很多地方,始终没有找到问题出在哪里。最后干脆把计算方法一句一句拆分,得到了最后最简单的一步,就是把两个具体的数值相加,但是最后的结果居然还是错误的。比如,现在已经到了最简单的一步: 代码如下:double n = 171.6;double m = 28.17;double k = n + m;  按理说k的值应该是199.77,但其实得到的居然是199.76999999999998。      我们的系统里有保留小数位数为4位,按理是可以

weixin_38500944

double相加出现多位小数的问题

double相加出现多位小数问题

海阔天空6688

避免Double加double出现科学计数法问题

资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 避免Double与double相加出现科学计数法的情况 防止Double加double出现科学计数法问题 避免Double加double产生科学计数法状况

crossfiredashi

c++一元多项式相加源码

c++一元多项式相加源码

三师兄东流

double数据类型

30位有效数字的浮点数结构解决double数据类型多次累加后的明显的误差 标准的c或者c++的double数据类型只有15位有效数字(好像有这么回事,参看IEEE 754 ), 因此产生了大的数字多次累加后的明显的误差,在财务计算中,这种误差是不能接受的。 利用2个double变量构造出一个doubledouble结构,解决了这个问题。

hoyt00
评论 12
收藏 已收藏
分享
返回顶部
Lyle
Java EE 67,535 成员 225,843 内容