Java学习总结--030BigDecimal类的概述和方法使用

BigDecimal类的概述和方法使用

A:BigDecimal的概述
由于在运算的时候,float类型和double很容易丢失精度,演示案例。
所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
不可变的、任意精度的有符号十进制数。
B:构造方法
public BigDecimal(String val)
C:成员方法
public BigDecimal add(BigDecimal augend)//加
public BigDecimal subtract(BigDecimal subtrahend)//减
public BigDecimal multiply(BigDecimal multiplicand)//乘
public BigDecimal divide(BigDecimal divisor)//除法
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)//scale 小数点后面保留几位
// roundingMode 取舍模式 比如四舍五入

public class MyTest {
    public static void main(String[] args) {
        //double a=10;
        //double b=3;
        //System.out.println(a/b);
        //如果你对精度要求特别高,那么Java也会有相应的类提供
    //    构造方法
	//public BigDecimal(String val)
        //public BigDecimal add (BigDecimal augend)//加
        //public BigDecimal subtract (BigDecimal subtrahend)//减
        //public BigDecimal multiply (BigDecimal multiplicand)//乘
        //public BigDecimal divide (BigDecimal divisor)//除法
        //public BigDecimal divide (BigDecimal divisor,int scale, int roundingMode)//scale 小数点后面保留几位
        //// roundingMode 取舍模式 比如四舍五入

        BigDecimal a = new BigDecimal(10.00000000000002);
        BigDecimal b = new BigDecimal(10.00000000000002888888888888888888888888888);
        BigDecimal add = a.add(b);
        System.out.println(add);
        BigDecimal subtract = a.subtract(b);
        System.out.println(subtract);

        BigDecimal multiply = a.multiply(b);
        System.out.println(multiply);
    }
}
public class MyTest2 {
    public static void main(String[] args) {
        BigDecimal a = new BigDecimal(10);
        BigDecimal b = new BigDecimal(3);
        // BigDecimal divide = a.divide(b); 能整除
        //不能整除
        //ROUND_CEILING
        //接近正无穷大的舍入模式。
        //public BigDecimal divide (BigDecimal divisor,int scale, int roundingMode)//scale 小数点后面保留几位
        //// roundingMode 取舍模式 比如四舍五入
        BigDecimal divide = a.divide(b, 30, BigDecimal.ROUND_UP);
        System.out.println(divide);
        System.out.println(10.0 / 3.0);
        System.out.println(1 == 0.9999999999999999999999999999999999999999999999999999999999999999999999);
    }
}

猜你喜欢

转载自blog.csdn.net/web116629/article/details/89945865
今日推荐