0

我有一个函数可以计算创建 BigDecimal 格式变量的数据,并且我试图根据结果相应地向上或向下舍入。例如:

16.543242123 应该是 16.5 3.35 应该是 3.4 6.3456 应该是 6.3

以此类推,如果第 3 位等于或大于 5,则将第 2 位四舍五入,如果等于 4 及以下,则删除第 3 位。这并不绝对需要是 BigDecimal,我可以在我设法进行四舍五入后计算出转换数字。提前致谢。

4

2 回答 2

0

这应该这样做:

  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
于 2013-11-01T13:48:29.410 回答
0
BigDecimal bd = new BigDecimal("16.553242123");
BigDecimal format = bd.setScale(1, RoundingMode.HALF_UP);
于 2013-11-01T13:48:50.153 回答