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);
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号