我有一个函数可以计算创建 BigDecimal 格式变量的数据,并且我试图根据结果相应地向上或向下舍入。例如:
16.543242123 应该是 16.5 3.35 应该是 3.4 6.3456 应该是 6.3
以此类推,如果第 3 位等于或大于 5,则将第 2 位四舍五入,如果等于 4 及以下,则删除第 3 位。这并不绝对需要是 BigDecimal,我可以在我设法进行四舍五入后计算出转换数字。提前致谢。
这应该这样做:
BigDecimal bg1 = new BigDecimal(16.543242123);
bg1 = bg1.setScale(1, BigDecimal.ROUND_HALF_EVEN);
System.out.println(bg1.toString()); //16.5
BigDecimal bg2 = new BigDecimal(3.35);
bg2 = bg2.setScale(1, BigDecimal.ROUND_HALF_EVEN);
System.out.println(bg2.toString()); //3.4
BigDecimal bg3 = new BigDecimal(6.3456);
bg3 = bg3.setScale(1, BigDecimal.ROUND_HALF_EVEN);
System.out.println(bg3.toString()); //6.3
BigDecimal bd = new BigDecimal("16.553242123");
BigDecimal format = bd.setScale(1, RoundingMode.HALF_UP);