JAVA计算机中有个BUG求帮助。。。。 http://download.csdn.net/detail/dd646711228/4114203我上传的一个简单计算器代码。运行于MyEclipse8.5。要实现的功能都能实现啦。就是当输入0.2*3时。结果很吓人啊。求帮助。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的数值定义类型是什么?用浮点类型的话是会产生这样的结果。因为本身的计算就是不准确的,建议使用BigDecimal BigDecimal这个类型还没有学过啊。就是在0.2*3的时候会出现0.60000000001。而0.3*2结果是真确的。所以觉得很奇怪啊。 不奇怪,二进制处理小数本来就有其固有的精度问题。这个基本上是所有语言的通病(当然专用的数学计算语言除外),楼主多Google下就清楚了。解决办法就是输出时做舍尾操作,判断的时候做精度忽略操作。 需要精确计算的推荐用BigDecimal java中float和double对精度的处理很奇怪的,建议使用BigDecimal! 请教一个分割字符串插入数据库的问题 java基础问题 傻题:java不需要写main(arg)吧? 如何侦测到IO流的结束,在线等,急!!! 求教,如何让具有同样优先级的n个线程分时间片执行阿? 在action的方法中return什么不刷新页面? 如何让生成的JFrame始终前端显示? 请教:JBuilder4.0中选择File|new 时Enterprise下选项全部不可用 如何将泛型对象作为方法参数 java中input.next()读取的字符串和指定字符串的比较 面试求助,高手请进 打字游戏问题
用浮点类型的话是会产生这样的结果。
因为本身的计算就是不准确的,建议使用BigDecimal
解决办法就是输出时做舍尾操作,判断的时候做精度忽略操作。