导出excel文件时,BigDecimal类型的字段按实际位数导出,去掉多余的0

案例背景:为了计算精度,数据库存储价格等字段时,定义的字段类型是Decimal(20,15),即保留15位小数。但是当我们进行业务导出时,直接返回BigDecimal类型的字段会导致excel文件中改字段不足15位的字段自动填充的许多0。如下图:

当小数点后位数过多,多余的0没有实际意义,根据业务需求需要去掉多余的0,可以调用相关方法去掉小数后多余0

例如:

public static void main(String[] args) {
    BigDecimal big= new BigDecimal("0.500000000");
    //stripTrailingZeros()函数就是用于去除末尾多余的0的
    BigDecimal big1= big.stripTrailingZeros();
    //根据业务需求可以继续将其转为String
    String str= big1.toPlainString();
    //打印结果,=0.5
    System.out.println(str);
}

注:stripTrailingZeros()函数就是用于去除末尾多余的0的,但是如果该字段本身的数据是10.00,此时程序的输出为: 1.00E+01,如右图:

这是科学计数法,可能并不是我们想要的。这个问题的解决办法就是用.toPlainString()将得到的结果再转一下。即

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值