本帖最后由 依然AI 于 2012-12-18 18:16 编辑
出现这种问题的原因是浮点数值是采用二进制系统表示的,而在系统中无法精确的表示分数1/10。
需要在计算中不含有任何舍入误差,就应该使用BigDecimal类。
将一个类标记为strictfp ,那么这个类中的所有方法都要使用严格的浮点数计算,
将一个方法标记为strictfp,那么这个方法就会使用严格的浮点数计算,
public static strictfp void main(String [] args)
有种简单的方法 可以先乘 去掉小数点 做运算然后再除 可以避免 浮点运算 |