java去除数字末尾0,整数去除.0,浮点型保留精度

/**
     * 去除double类型后多余的 0
     * @param num
     * @return
     */
    public static Double noZeros(Double num) {
        BigDecimal value = new BigDecimal(num);
        //去除多余0
        BigDecimal noZeros = value.stripTrailingZeros();
        //BigDecimal => double
        return noZeros.doubleValue();
    }

    public static String doubleTrans(double d){
        double eps = 1e-10;
        //判断是否为整数
        if(d-Math.floor(d) < eps){
            return String.valueOf((long)d);
        }
        DecimalFormat df = new DecimalFormat("#.#####");
        return df.format(d);
    }

测试

    public static void main(String[] args) {
        Double[] dArray = new Double[]{1d,1.2d, 3.1415926d, 1.001d, 2.00d, 6.4567890d, 10001.20002d, 20032.780d, 234.900d};
        for (Double d : dArray)
            System.out.println("对比:" + d + " | " +  doubleTrans(noZeros(d)));
    }

输出

对比:1.0 | 1
对比:1.2 | 1.2
对比:3.1415926 | 3.14159
对比:1.001 | 1.001
对比:2.0 | 2
对比:6.456789 | 6.45679
对比:10001.20002 | 10001.20002
对比:20032.78 | 20032.78
对比:234.9 | 234.9

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

as350144

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值