导出excel⽂件时,BigDecimal类型的字段按实际位数导出,
去掉多余的0
案例背景:为了计算精度,数据库存储价格等字段时,定义的字段类型是Decimal(20,15),即保留15位⼩数。但是当我们进⾏业务导出时,直接返回BigDecimal类型的字段会导致excel⽂件中改字段不⾜15位的字段⾃动填充的许多0。如下图:bigdecimal除法保留小数
当⼩数点后位数过多,多余的0没有实际意义,根据业务需求需要去掉多余的0,可以调⽤相关⽅法去掉⼩数后多余0
例如:
public static void main(String[] args) {
BigDecimal big= new BigDecimal("0.500000000");
/
/stripTrailingZeros()函数就是⽤于去除末尾多余的0的
BigDecimal big1= big.stripTrailingZeros();
//根据业务需求可以继续将其转为String
String str= PlainString();
//打印结果,=0.5
System.out.println(str);
}
注:stripTrailingZeros()函数就是⽤于去除末尾多余的0的,但是如果该字段本⾝的数据是10.00,此时程序的输出为: 1.00E+01,如
右图:。
这是科学计数法,可能并不是我们想要的。这个问题的解决办法就是⽤.toPlainString()将得到的结果再转⼀下。即
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论