package com.mao.two;
import java.math.BigDecimal;
public class BigDecimalDemo01 {
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);
//3.通过静态方法获取对象
BigDecimal bd6 = BigDecimal.valueOf(10);
System.out.println(bd6);
//1.如果表示的数字不大,没有超出double的取值范围,建议使用静态方法
//2.如果表示的数字比较大,超出了double的取值范围,建议使用构造方法
//3.如果我们传递的是0~10之间的整数,包含0,包含10,那么方法会返回自己已经创建好的对象,不会重新new
}
}
![]()
package com.mao.two;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimalDemo02 {
public static void main(String[] args) {
//1. 加法
BigDecimal bd1 = BigDecimal.valueOf(10.0);
BigDecimal bd2 = BigDecimal.valueOf(4.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);
System.out.println(bd6 );
//5.除法 保留几位
BigDecimal bd7 = bd1.divide(bd2,2, RoundingMode.HALF_UP);//保留两位 四拾伍入
System.out.println(bd6 );
}
}
![]()
package com.mao.two;
import java.math.BigDecimal;
public class BigDecimalDemo03 {
public static void main(String[] args) {
BigDecimal bd1 = BigDecimal.valueOf(0.226);
BigDecimal bd2 = BigDecimal.valueOf(123.226);
BigDecimal bd3 = BigDecimal.valueOf(-1.5);
}
}