Java 四舍五入与保留几位小数

double dd = 1.345678;
        double d1 = new BigDecimal(dd).setScale(3, BigDecimal.ROUND_DOWN).doubleValue();
        log.info("ROUND_DOWN {} => {}", dd, d1);

        double d2 = new BigDecimal(dd).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
        log.info("ROUND_HALF_UP {} => {}", dd, d2);

        String  str = String.format("%.3f", dd);
        double d3 = Double.parseDouble(str);
        float f3 = Float.parseFloat(str);
        log.info("String.format(%.3f) {} -> {} => {} >> {}", dd, str, d3, f3);
        
        str = dd + "";
        int pos = str.indexOf(".");
        if (pos + 3 + 1 < str.length()) {
            str = str.substring(0, pos + 3 + 1);
        }
        double d4 = Double.parseDouble(str);
        float f4 = Float.parseFloat(str);
        log.info("String.substring(%.3f) {} -> {} => {} >> {}", dd, str, d4, f4);

 

posted @ 2023-09-26 17:36  都是城市惹的祸  阅读(17)  评论(0)    收藏  举报