日期:2014-05-20  浏览次数:20605 次

0.3*3=0.899999999????
奇怪唉
0.3*3=0.899999999 ?? 不等于0.9
0.2*6=1.200000002 ?? 不等于1.2
自己编的以及从网上下载的java计算器代码运行后都出现类似问题,怎么样规范数据显示?请教!!!!!

------解决方案--------------------
浮点型能表示的小数位有限float是7位,double是14位

http://blog.csdn.net/nujiah001/article/details/6657410
------解决方案--------------------
Java code

                BigDecimal param = new BigDecimal(String.valueOf(0.3));
        BigDecimal result = new BigDecimal(3);
        System.out.println(result.multiply(param).doubleValue());

------解决方案--------------------
java数据是用二进制表式的,会有精读损失。。。
------解决方案--------------------
用BigDecimal
------解决方案--------------------
java用于精确计算会有误差的,sun公司说明了的