http://download.csdn.net/detail/dd646711228/4114203我上传的一个简单计算器代码。运行于MyEclipse8.5。要实现的功能都能实现啦。就是当输入0.2*3时。结果很吓人啊。求帮助。谢谢

解决方案 »

  1.   

    你的数值定义类型是什么?
    用浮点类型的话是会产生这样的结果。
    因为本身的计算就是不准确的,建议使用BigDecimal
      

  2.   

    BigDecimal这个类型还没有学过啊。就是在0.2*3的时候会出现0.60000000001。而0.3*2结果是真确的。所以觉得很奇怪啊。
      

  3.   

    不奇怪,二进制处理小数本来就有其固有的精度问题。这个基本上是所有语言的通病(当然专用的数学计算语言除外),楼主多Google下就清楚了。
    解决办法就是输出时做舍尾操作,判断的时候做精度忽略操作。
      

  4.   

    需要精确计算的推荐用BigDecimal
      

  5.   

    java中float和double对精度的处理很奇怪的,建议使用BigDecimal!