欢迎来到我的博客

JAVA-去掉小数点后面多余的0,保留小数不足补0, 使用BigDecimal

stripTrailingZeros():去除小数部分末尾的零
    @Test
    public void TestCompare() {
        // JAVA中Float类型的小数超过4位(前面都是0,例如0.0001)会转成科学计数法存储
        float f = 0.0001F;
        // 转BigDecimal的时候避免精度丢失,先转成String类型
        String fStr = Float.toString(f);
        System.out.println(fStr);
 
        // 使用stripTrailingZeros()方法去掉小数后面多余的0
		// toPlainString()是不用科学计数法表示,如1000 new BigDecimal(fStr).stripTrailingZeros().toString()就是10三次方
        String s3 = new BigDecimal(fStr).stripTrailingZeros().toPlainString();
        System.out.println(s3);
		
		// 普通字符串去掉后面的0
        String s4 = "123.5400";
        System.out.println(new BigDecimal(s4).stripTrailingZeros().toPlainString());
 
    }

执行结果
image


toPlainString():

这个方法会返回一个不使用科学计数法的字符串表示形式。
例如,new BigDecimal("123456789.123456789") 调用 toPlainString() 后会返回 "123456789.123456789",而不是科学计数法形式的 "1.23456789123456789E8"。

保留小数位数,不足补0
String s = "123.5400";
System.out.println(new BigDecimal(s).setScale(6, BigDecimal.ROUND_HALF_UP));

执行结果:

123.540000
posted @ 2023-06-30 10:20  fchhk  阅读(1451)  评论(0)    收藏  举报