我们可以删除 BigDecimal 中小数点前的浮零吗
can we remove floating zero before decimal point in BigDecimal
BigDecimal bd1= new BigDecimal(0.000);
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
System.out.println("bd1 value::"+ bd1);
我得到以下 bd1 的 0.00
,但我希望 bd1 为 .00
而不是 0.00
。我是否正确应用了这些方法?
您可以将 BigDecimal
转换为 String
,然后使用正则表达式有条件地删除前导零(如果存在):
BigDecimal bd1 = new BigDecimal(0.000);
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
String bdString = bd1.toString().replaceFirst("^0+(?!$)", "")
System.out.println("bd1 value::"+ bdString);
BigDecimal bd1= new BigDecimal(0.000);
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
System.out.println("bd1 value::"+ bd1);
我得到以下 bd1 的 0.00
,但我希望 bd1 为 .00
而不是 0.00
。我是否正确应用了这些方法?
您可以将 BigDecimal
转换为 String
,然后使用正则表达式有条件地删除前导零(如果存在):
BigDecimal bd1 = new BigDecimal(0.000);
bd1 = bd1.setScale(2, RoundingMode.HALF_UP).stripTrailingZeros();
String bdString = bd1.toString().replaceFirst("^0+(?!$)", "")
System.out.println("bd1 value::"+ bdString);