让我们考虑下面的代码片段
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
只检查下一个数字值四舍五入。
我有什么方法可以实现迭代舍入输出。
答案 0 :(得分:2)
该问题需要一种独特的舍入模式。这个答案解决了获得特殊舍入的一般问题。
BigDecimal(double)
构造函数和BigDecimal的toString()
方法都是准确的。
BigDecimal bd = new BigDecimal(d);
String s = bd.toString();
s
留下String
double
d
代表BigDecimal
bd
。然后,您可以执行任何必需的字符串操作以获得所需的值。此外,您可以在四舍五入i
中使用任何setTimeout
舍入模式。