标签:
Java中要使用 BigDecimal(定点数) 进行小数的相关操作,避免使用float等浮点数,因为 float, double等浮点的存储和操作(比如:相加,相减...)存在误差(7.22f - 7.0f = 0.21999979 而不是 0.22)。
下面以 BigDecimal 进行减法为例:
/** * 精确的减法 */ public static double subtract(double v1, double v2) { BigDecimal d1 = new BigDecimal(Double.toString(v1)); BigDecimal d2 = new BigDecimal(Double.toString(v2)); return d1.subtract(d2).doubleValue(); } // subtract(7.22d, 7.0d) == 0.22
BigDecimal 提供了 add, divide, subtract 等一系列相关的 加、减、乘、除、取模 等操作。
Java中要使用 BigDecimal(定点数) 进行小数的相关操作,避免使用float等浮点数
标签:
原文地址:http://my.oschina.net/jsan/blog/510656