package net.elaina.BigDecimaTest;
import java.math.BigDecimal;
public class Test1 {
public static void main(String[] args) {
/*构造方法获取BigDecimal对象
public BigDecimal(double val)
public BigDecimal(String val)
静态方法获取BigDecimal对象
public static BigDecimal value0f(double val)*/
//1.通过传递double类型的小数来创建对象
//细节:
//这种方式有可能是不精确的,所以不建议使用
//BigDecimal bd1 = new BigDecimal(0.01);
//BigDecimal bd2 = new BigDecimal(0.09);
// .system.out.println(bd1);
// system.out.println(bd2);
//2.通过传递字符串表示的小数来创建对象
BigDecimal bd1 = new BigDecimal("0.01");
BigDecimal bd2 = new BigDecimal("0.09");
BigDecimal bd3 = bd2.add(bd1);
System.out.println(bd1);
System.out.println(bd2);
System.out.println(bd3);
//3.通过静态方法获取对象
BigDecimal bd6 = BigDecimal.valueOf(10);
BigDecimal bd7 = BigDecimal.valueOf(10);
System.out.println(bd6 == bd7);
//细节:
//1.如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
//2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
//3.如果我们传递的是0~10之间的整数,包含e,包含10,那么方法会返回已经创建好的对象,不会重新new
}
}
package net.elaina.BigDecimaTest;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Test2 {
public static void main(String[] args) {
/*
public BigDecimal add(BigDecimal val) 加法
public BigDecimal subtract(BigDecimal val) 减法
public BigDecimal multiply(BigDecimal val) 乘法
public BigDecimal divide(BigDecimal val) 除法
public BigDecimal divide(BigDecimal val,精确几位,舍入模式) 除法
*/
//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, RoundingMode.HALF_UP);
System.out.println(bd6);//3.33
}
}
标签:java,BigDecimal,BigDecima,bd1,bd2,println,public,out
From: https://www.cnblogs.com/elaina520/p/17870999.html