BigDecimal 转字符串,并去掉尾部的0

有一种写法,先转成Double

BigDecimal target = new BigDecimal("5375130.000000");
BigDecimal.valueOf(Double.parseDouble(target.toString())).toString()

这种写法发现两个问题:
1、小于8位数时,可以正常转化,但如果是整数的话,后边会带着一个".0"。
2、大于等于8位数时,如果是10的倍数的话,转化的还是科学计数法类型的;如果不是的话,可以正常转化,后边不会带着“.0”。
测试代码:

BigDecimal target = new BigDecimal("5375130.000000");
String str = BigDecimal.valueOf(Double.parseDouble(target.toString())).toString();
System.out.println("小于8位,并且是整数:" + str);
System.out.println("======================");
target = new BigDecimal("12676490.000000");
str = BigDecimal.valueOf(Double.parseDouble(target.toString())).toString();
System.out.println("大于等于8位,并且是10的倍数" + str);
System.out.println("======================");
target = new BigDecimal("12676491.000000");
str = BigDecimal.valueOf(Double.parseDouble(target.toString())).toString();
System.out.println("大于等于8位,不是10的倍数" + str);

执行结果:
在这里插入图片描述

另一种方式,应用BigDecimal自身的方法:

stripTrailingZeros() 去掉尾部的0;
toPlainString() 转化字符串,非科学计数法。

BigDecimal target = new BigDecimal("5375130.000000");
String str = target.stripTrailingZeros().toPlainString();

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值