Java double类型转成String,去除末尾的“.0”

1 背景

1.double直接转string,例如sout(double)或者String.valueOf(double),假设是整数,会自动在后面添加“.0”,我们不需要这个添加;

2.不要用科学计数法显示

 

2 正确示例

(左double 右String)

1 -> 1

1.0 ->1

1.1->1.1

100->100

3 代码

private String convertDoubleToString(double val) {
    BigDecimal bd = new BigDecimal(String.valueOf(val));
    return bd.stripTrailingZeros().toPlainString();
}

说明:stripTrailingZeros去除末尾的".0",toPlainString表示不使用科学计数法(toString会使用科学计数法)。

4 测试

public final class Test {
    public static void main(String[] args) {
        double val = 1;
        System.out.println(val);
        System.out.println(convertDoubleToString(val));

        System.out.println(convertDoubleToString(1.0));
        System.out.println(convertDoubleToString(1.1));
        System.out.println(convertDoubleToString(1.9));
        System.out.println(convertDoubleToString(100));
    }

    private static String convertDoubleToString(double val) {
        BigDecimal bd = new BigDecimal(String.valueOf(val));
        return bd.stripTrailingZeros().toPlainString();
    }
}

打印:

 

---------2020.10.9补充⬇️---------

5.新方法

public static String convertRate2Decimal(Double rate) {
    if (rate == null) {
        return null;
    }

    NumberFormat nf = NumberFormat.getPercentInstance();
    nf.setMaximumFractionDigits(2);// 设置保留小数位
    nf.setRoundingMode(RoundingMode.HALF_UP); // 设置舍入模式
    return nf.format(rate);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值