&&在java中进行浮点数计算时,因为浮点数再计算机存储时都是二进制存储,所以在计算的过程会出现不精确的计算,例如2-1.1时,得到的结果是0.899999999999.
&&如果我们想让Java在计算浮点数,实现精确计算,那么我们将会用到BigDecimal类,利用该类来实现浮点数的精确计算。
public class AccurateFloat{
public static void main(String[] args){
double money = 2;
double price = 1.1;
double result = money - price;
System.out.println("非精确计算:");
System.out.println("剩余金额为:" + result);
// 精确浮点计算
BigDecimal money1 = new BigDecimal("2");
BigDecimal price1 = new BigDecimal("1.1");
BigDecimal result1 = money1.subtract(price1);
System.out.println("精确计算:");
System.out.println("剩余金额为:" + result1);
}
}
&&**这里要注意:**BigDecimal类中表示的数字都是String型的。