float a = 0.1f;
double d = 1.0 / 10;
System.out.println(a == d);//输出false,因为浮点数存在舍入误差,不能精确的表示小数,d可能表示为0.099
如果需要不进行舍入误差的精确计算,需要使用BigDecimal(大小数)类。
PS:BigInteger(大整数)
float a = 0.1f;
double d = 1.0 / 10;
System.out.println(a == d);//输出false,因为浮点数存在舍入误差,不能精确的表示小数,d可能表示为0.099
如果需要不进行舍入误差的精确计算,需要使用BigDecimal(大小数)类。
PS:BigInteger(大整数)