Java浮点计算丢失是double与float要面对的问题,我们可以使用BigDecimal解决
作用:BigDecimal 是 Java 中用于表示高精度浮点数的类,它提供了精确的小数运算。与 float 和 double 不同,BigDecimal 可以避免浮点数运算中的精度丢失问题,因此在需要精确计算的场景中非常有用。
应用场景:
金融计算:如货币金额的计算,要求结果精确到小数点后多位。
科学计算:需要高精度的数学运算,确保结果的准确性。
商业应用:如发票、账单等涉及金额的计算,避免浮点数精度问题导致的误差。
统计分析:处理大量数据时,确保每个数值的精度。
public class MyTest2 {
public static void main(String[] args) {
BigDecimal n1=new BigDecimal("100");
BigDecimal n2=new BigDecimal("3");
BigDecimal result = n1.add(n2);//加法
System.out.println(result);//减法
BigDecimal result2 = n1.subtract(n2);
System.out.println(result2);
BigDecimal multiply = n1.multiply(n2);
System.out.println(multiply);//乘法
BigDecimal divide = n1.divide(n2,5,BigDecimal.ROUND_HALF_UP);//四舍五入保留小数
System.out.println(divide);
}
}