java 去掉BigDecimal后无用的零

作者: imule 分类: Java备忘 发布时间: 2022-12-01 11:19

有时候输入的是整数,但是保存的格式是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
寄语

    有人在奔跑,有人在睡觉,有人在感恩,有人在抱怨,有目标的睡不着,没目标的睡不醒,努力才是人生应有的态度,睁开眼就是新的开始。

本站文章主要用于个人学习记录,可能对您有所帮助,仅供参考!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!