BigDecimal构造方法
import java.math.BigDecimal;
public class BigDecimalDemo1 {
public static void main(String[] args) {
//1.通过传递double类型的小数来创建对象;
BigDecimal bd1=new BigDecimal(0.01);
BigDecimal bd2=new BigDecimal(0.09);
System.out.println(bd1);
System.out.println(bd2);
//这种方式是有可能不精确的,所以不建议使用;
//2.通过传递字符串表示的小数来创建对象;
BigDecimal bd3=new BigDecimal("0.01");
BigDecimal bd4=new BigDecimal("0.09");
BigDecimal bd5 = bd3.add(bd4);
System.out.println(bd3);
System.out.println(bd4);
System.out.println(bd5);
/*
0.01
0.09
0.10
*/
//3.通过静态方法获取对象;
BigDecimal bd6=BigDecimal.valueOf(10);
BigDecimal bd7=BigDecimal.valueOf(10);
System.out.println(bd6==bd7);//true
//细节:
//1.如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法;
//2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法;
//3.如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new;
}
}
1.如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法;
2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法;
3.如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会自动返回已经创建好的对象,不会重新new;
BigDecimal的使用
import java.math.BigDecimal;
public class BigDecimalDemo2 {
public static void main(String[] args) {
//1.加法:
BigDecimal bd1 = BigDecimal.valueOf(10.0);
BigDecimal bd2=BigDecimal.valueOf(3.0);
BigDecimal bd3=bd1.add(bd2);
System.out.println(bd3);
//2.减法:
BigDecimal bd4=bd1.subtract(bd2);
System.out.println(bd4);
//3.乘法:
BigDecimal bd5=bd1.multiply(bd2);
System.out.println(bd5);
//4.除法:
BigDecimal bd6=bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP);
System.out.println(bd6);//3.33
//RoundingMode.HALF_UP在新版本使用;
}
}
UP:远离零方向的舍入模式;
DOWM:向零方向舍入的舍入模式;
CEILING:向正无限大方向舍入的舍入模式;
FLOOR:向负无限大方向舍入的舍入模式;
小结
1.BigDecimal的作用:
表示较大的小数和解决小数运算精度失真的问题;
2.BigDecimal的对象是如何获取的?
BigDecimal bd1=new BigDecimal("较大的小数");
BigDecimal bd2=BigDecimal.vaLueOf(0.1);
3.常见操作:加减乘除;