黑马程序员技术交流社区
标题:
一个算术问题
[打印本页]
作者:
闵云波
时间:
2013-6-20 18:21
标题:
一个算术问题
执行结果为什么不是0.90和1.00
捕获.JPG
(20.76 KB, 下载次数: 0)
下载附件
2013-6-20 18:19 上传
执行结果
作者:
msileandroid
时间:
2013-6-20 18:23
源代码呢?{:3_47:}
作者:
闵云波
时间:
2013-6-20 18:23
代码是
public class Demo {
public static void main(String[] args) {
System.out.println(2.00-1.10);
System.out.println(2.11-1.11);
}
}
复制代码
作者:
msileandroid
时间:
2013-6-20 18:38
首先两个double相减最后还是double类型;
double是有精确度的 不能保证准确的
出现这种问题的原因是浮点数值是采用二进制系统表示的,而在系统中无法精确的表示分数1/10。
如果需要在计算中不含有任何舍入误差,应使用BigDecimal类。
作者:
pys200603027
时间:
2013-6-22 11:17
(1)这是计算机二进制运算精度损失问题
(2)使用BigDecimal类可以达到高精度运算
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2