学习Java第二十二天--BigDecimal类

11.5 BigDecimal类

11.5.1 为什么要用BigDecimal类

public class Test{
public static void main(String[] args){
double d1= 1.0;
double d2 = 0.9;
Systom.out.println(d1-d2);
}
}

输出结果:

0.0999999999999999
  • 很多实际应用中需要精确运算,而double是近似值存储,不符合要求,需要借助BigDecimal。

11.5.2 BigDecimal语法

  • 位置:java.math包中;

作用:精确计算浮点数;

  • 创建方式:BigDecimal bd = new BigDecimal(“1.0”);
  • 方法:
    BigDecimal add(BigDecimal bd); //加
    BigDecimal subtract(BigDecimal bd); //减
    BigDecimal multiply(BigDecimal bd); //乘
    BigDecimal divide(BigDecimal bd); //除

11.5.3 利用BigDecimal可以进行数组运算

import java.math.BigDecimal;

public class TestBigDecimal {

	public static void main(String[] args) {
		
		BigDecimal bd1 = new BigDecimal("2.2");//需要以字符串的形式传参
		BigDecimal bd2 = new BigDecimal("1.2");
		BigDecimal bd3 = new BigDecimal("1.0");
		
		System.out.println(bd1);
		System.out.println(bd2);
		System.out.println(bd3);
		
		System.out.println(bd1.add(bd2));//加法
		System.out.println(bd1.subtract(bd3));//减法
		System.out.println(bd1.multiply(bd2));//乘法
		
		BigDecimal result = bd1.divide(bd2,2, BigDecimal.ROUND_HALF_UP);//除不尽的情况下,必须明确两个信息,中间是保留几位小数,后者是四舍五入
		System.out.println(result);
	}

}

输出结果:

2.2
1.2
1.0
3.4
1.2
2.64
1.83
  • 进行除法运算时,如果不能准确的计算出结果时需要指定保留的位数和取舍方式;

11.5.4 divide()方法
除法:BigDecimal(BigDecimal bd , int scal , RoundingMode mode)
参数scal:指定精确到小数点后几位;
参数mode:
指定小数部分的取舍模式,通常采用四舍五入的模式;
取值为BigDecimal.ROUND_HALF_UP;

发布了34 篇原创文章 · 获赞 7 · 访问量 1287

猜你喜欢

转载自blog.csdn.net/weixin_44257082/article/details/104640465
今日推荐