BigDecimal
-
很多实际应用中需要精确运算,而double是近似值存储,不在符合要求,需要借助BIgDecimal。
-
例如:
-
public class TestBigDecimal {
public static void main(String[] args) {
double d1=1.0;
double d2=0.9;
System.out.println(d1-d2);
}
} -
输出结果:0.09999999999999998
BigDecimal
-
位置:java.math包中。
-
作用:精确计算浮点数。
-
创建方式:BigDecimal bd=new BigDecimal (“1.0”);
-
方法
-
BigDecimal add(BigDecimal bd) 加
-
//加法
System.out.println("加法");
BigDecimal s2 = bd1.add(bd2);
System.out.println(s2); -
BigDecimal subtract(BigDecimal bd) 减
-
//减法
System.out.println("减法");
BigDecimal s1 = bd1.subtract(bd2);
System.out.println(s1); -
BigDecimal multiply(BigDecimal bd) 乘
-
System.out.println("乘法");
BigDecimal s3 = bd1.multiply(bd2);
System.out.println(s3); -
BigDecimal divide(BigDecimal bd) 除
-
-
/*
除法: divide(BigDecimal bd,int scal, RoundingMode mode)
参数scal :指定精确到小数点后几位。
参数mode :
。指定小数部分的取舍模式,通常采用四舍五入的模式,
。取值为BigDecimal.ROUND_HALF_UP。
*/
System.out.println("除法");
BigDecimal s4 = bd1.divide((bd2),2,BigDecimal.ROUND_HALF_UP);
System.out.println(s4);
BigDecimal s5 = new BigDecimal("1.4")
.subtract(new BigDecimal("0.5"))
.divide(new BigDecimal("0.9"),2,BigDecimal.ROUND_HALF_UP);
System.out.println(s5); -
-
-