让我们考虑下面的代码片段
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
保留为 double
d
的精确、不四舍五入的 String
表示形式。然后,您可以执行任何所需的字符串操作来获取所需的值。此外,您可以在舍入 bd
中使用任何 BigDecimal
舍入模式。
关于Java:以迭代方式向上舍入双值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44968067/