让我们考虑下面的代码片段
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
在舍入时仅检查立即下一位数字值。有什么方法可以实现迭代舍入输出。
最佳答案
这个问题要求一种独特的舍入模式。该答案解决了获取特殊舍入的一般问题。BigDecimal(double)
构造函数和BigDecimal的toString()
方法都是精确的。
BigDecimal bd = new BigDecimal(d);
String s = bd.toString();
使
s
带有String
double
的精确,未取整的d
表示形式。然后,您可以执行任何必需的字符串操作以获取所需的值。此外,可以在BigDecimal
舍入中使用任何bd
舍入模式。