BigDecimal.ZERO:表示值为零的 BigDecimal。
BigDecimal.ONE:表示值为一的 BigDecimal。
BigDecimal.TEN:表示值为十的 BigDecimal。
常用方法
1,add(BigDecimal augend):加法运算
BigDecimal c= BigDecimal.ZERO;//表示值为零的 BigDecimal。
BigDecimal a=new BigDecimal("1.11");;//定义一个总价格
BigDecimal b=new BigDecimal("2.22");;//定义一个单个价格
c=a.add(b);
输出:
c=3.33
2,subtract(BigDecimal subtrahend):减法运算
BigDecimal c= BigDecimal.ZERO;//表示值为零的 BigDecimal。
BigDecimal a=new BigDecimal("1.11");;//定义一个总价格
BigDecimal b=new BigDecimal("2.22");;//定义一个单个价格
c=b.subtract(a);
System.out.println("c:"+c)
输出:
c=1.11
3,multiply(BigDecimal multiplicand):乘法运算
BigDecimal c= BigDecimal.ZERO;//表示值为零的 BigDecimal。
BigDecimal a=new BigDecimal("1.11");;//定义一个总价格
BigDecimal b=new BigDecimal("2.22");;//定义一个单个价格
c=b.multiply(a);
System.out.println("c:"+c)
输出:
c=2.4642
4,divide(BigDecimal divisor, int scale, RoundingMode roundingMode):除法运算,可以指定小数位数和舍入方式
BigDecimal bfb= BigDecimal.ZERO;//表示值为零的 BigDecimal。
BigDecimal a=674.14;//定义一个总价格
BigDecimal b=323.85;//定义一个单个价格
bfb = b.divide(a,scale:4,RoundingMode.HALF_UP); //保留小数点后四位数
//RoundingMode.HALF_UP 四舍五入
结果:
bfb = 0.5004 //原值bfb=0.50043267
5,setScale(int newScale, RoundingMode roundingMode):设置小数位数和舍入方式
BigDecimal a = new BigDecimal("1.23456");
// 设置小数位数为3,四舍五入
BigDecimal rounded = a.setScale(3, RoundingMode.HALF_UP);
System.out.println("四舍五入结果: " + rounded);
// 输出: 1.235
// 设置小数位数为0,向下取整
rounded = a.setScale(3, RoundingMode.DOWN);
System.out.println("向下取整结果: " + rounded);
// 输出: 1.234
6,compareTo(BigDecimal val):比较两个BigDecimal的大小
compareTo方法返回-1、0或1,分别表示第一个BigDecimal小于、等于或大于第二个BigDecimal。
BigDecimal a= new BigDecimal("10.0");
BigDecimal b= new BigDecimal("20.0");
BigDecimal c= new BigDecimal("10.0");
// 使用compareTo方法比较
int result1 = a.compareTo(b);
int result2 =a.compareTo(c);
if (result1 < 0) {
System.out.println("a小于b");
} else if (result1 > 0) {
System.out.println("a大于b");
} else {
System.out.println("a等于b");
}
if (result2 == 0) {
System.out.println("a等于c");
}
结果:a小于b
a等于c
7,toString():将BigDecimal转换为字符串
BigDecimal bigDecimal = new BigDecimal("123.456");
String stringValue = bigDecimal.toString(); // 转换为字符串
System.out.println(stringValue);
// 输出: 123.456