bigdecimal 使用 stripTrailingZeros() 去除多余的小数末位 0 ,变为科学计数法的解决办法

发布时间 2024-01-05 10:02:30作者: 彭卫强

  bigdecimal 类是java 中解决高精度数字加减乘除的类。其中 stripTrailingZeros() 内置函数是去掉小数未位上是0的功能。在使用过程中发现 使用它后,整数是 70或者 100 的数据会变为科学技术法。

  //lysl 是 70
  BigDecimal zsl=lccb_jpsl.subtract(lysl);
  String s_zsl = zsl.stripTrailingZeros().toString();
  
  //zsl 的值 :70,而 s_zsl 值是:7E+1
  
  //修改为一下代码 toString() 替换为 toPlainString()
  
  BigDecimal zsl=lccb_jpsl.subtract(lccb_lysl);
 String s_zsl = zsl.stripTrailingZeros().toPlainString();
 
 //zsl 的值 :70,而 s_zsl 值是:70

  在把  zsl.stripTrailingZeros().toString(); 里面的 toString() 修改为 toPlainString() 就解决了这个问题