Java 之BigDecimal 常用方法使用

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


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值