Java中要使用 BigDecimal(定点数) 进行小数的相关操作,避免使用float等浮点数

旧城冷巷雨未停 提交于 2019-12-02 16:21:12

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 等一系列相关的 加、减、乘、除、取模 等操作。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!