java 去掉BigDecimal后无用的零
有时候输入的是整数,但是保存的格式是BigDecimal是两位小数,会自动加上.00,有时候我们不需要这个没有意义的小数,这个时候应该怎么去除BigDecimal后面无用的.00呢?
其实方法很简单:
- .stripTrailingZeros() ,会将.00去掉,仍为BigDecimal格式;
- .toPlainString(),转为String格式;
事例如下:
public static void main(String[] args) {
System.out.println("---------- 情形1 -----------");
BigDecimal bigDecimal = new BigDecimal("0.00");
System.out.println("处理前 ===== " + bigDecimal + ", 参数类型 ===== " + bigDecimal.getClass());
BigDecimal stripTrailingZeros = bigDecimal.stripTrailingZeros();
System.out.println(".stripTrailingZeros()处理后 ===== " + stripTrailingZeros + ", 参数类型 ===== " + stripTrailingZeros.getClass());
String toPlainString = stripTrailingZeros.toPlainString();
System.out.println(".toPlainString()处理后 ===== " + toPlainString + ", 参数类型 ===== " + toPlainString.getClass());
System.out.println("\n---------- 情形2 -----------");
bigDecimal = new BigDecimal("12.00");
System.out.println("处理前 ===== " + bigDecimal + ", 参数类型 ===== " + bigDecimal.getClass());
stripTrailingZeros = bigDecimal.stripTrailingZeros();
System.out.println(".stripTrailingZeros()处理后 ===== " + stripTrailingZeros + ", 参数类型 ===== " + stripTrailingZeros.getClass());
toPlainString = stripTrailingZeros.toPlainString();
System.out.println(".toPlainString()处理后 ===== " + toPlainString + ", 参数类型 ===== " + toPlainString.getClass());
System.out.println("\n---------- 情形3 -----------");
bigDecimal = new BigDecimal("30.000");
System.out.println("处理前 ===== " + bigDecimal + ", 参数类型 ===== " + bigDecimal.getClass());
stripTrailingZeros = bigDecimal.stripTrailingZeros();
System.out.println(".stripTrailingZeros()处理后 ===== " + stripTrailingZeros + ", 参数类型 ===== " + stripTrailingZeros.getClass());
toPlainString = stripTrailingZeros.toPlainString();
System.out.println(".toPlainString()处理后 ===== " + toPlainString + ", 参数类型 ===== " + toPlainString.getClass());
}
事例结果:
---------- 情形1 ----------- 处理前 ===== 0.00, 参数类型 ===== class java.math.BigDecimal .stripTrailingZeros()处理后 ===== 0, 参数类型 ===== class java.math.BigDecimal .toPlainString()处理后 ===== 0, 参数类型 ===== class java.lang.String ---------- 情形2 ----------- 处理前 ===== 12.00, 参数类型 ===== class java.math.BigDecimal .stripTrailingZeros()处理后 ===== 12, 参数类型 ===== class java.math.BigDecimal .toPlainString()处理后 ===== 12, 参数类型 ===== class java.lang.String ---------- 情形3 ----------- 处理前 ===== 30.000, 参数类型 ===== class java.math.BigDecimal .stripTrailingZeros()处理后 ===== 3E+1, 参数类型 ===== class java.math.BigDecimal .toPlainString()处理后 ===== 30, 参数类型 ===== class java.lang.String
本站文章主要用于个人学习记录,可能对您有所帮助,仅供参考!

