Java:以迭代方式舍入双值

时间:2017-07-07 10:04:10

标签: java double rounding

让我们考虑下面的代码片段

public static void main(String[] args) {
        DecimalFormat twoDForm = new DecimalFormat("#.00");            
        double k=4.144456;
        System.out.println(twoDForm.format(k));
    }

我期待输出为 4.15 ,好像我们考虑迭代舍入,答案应该是 4.15 ,但我猜DecimalFormat只检查下一个数字值四舍五入。

我有什么方法可以实现迭代舍入输出。

1 个答案:

答案 0 :(得分:2)

该问题需要一种独特的舍入模式。这个答案解决了获得特殊舍入的一般问题。

BigDecimal(double)构造函数和BigDecimal的toString()方法都是准确的。

BigDecimal bd = new BigDecimal(d);
String s = bd.toString();

s留下String double d代表BigDecimal bd。然后,您可以执行任何必需的字符串操作以获得所需的值。此外,您可以在四舍五入i中使用任何setTimeout舍入模式。