Float xx = 2.0f; Float yy = 1.8f; Float tt = xx - yy; System.out.println("tttttt-----" + tt);
果然输出结果是: tttttt-----0.20000005
再测试了几个float类型的减法,除了*.0这样的相减没有异议之外,都存在这个问题,就是说float在相减的时候精度丢失了。后来在网上找到一段解决这个问题的办法,记在这里:
BigDecimal b1 = new BigDecimal(Float.toString(xx)); BigDecimal b2 = new BigDecimal(Float.toString(yy)); float ss = b1.subtract(b2).floatValue(); System.out.println("ssss----" + ss);
发表评论