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 @   fchhk  阅读(1190)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 我与微信审核的“相爱相杀”看个人小程序副业
· DeepSeek “源神”启动!「GitHub 热点速览」
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示