gpt4 book ai didi

java - DecimalFormat 在舍入时是否不考虑小数值?

转载 作者:行者123 更新时间:2023-12-01 23:28:46 26 4
gpt4 key购买 nike

我正在尝试格式化金额。但是小数值没有以正确的方式四舍五入。

public class Testing {    
private java.text.DecimalFormat dispAmt;
public Testing() {
}
public static void main(String args[]){
Testing testing=new Testing();
testing.dispAmt = new java.text.DecimalFormat("##,##,##0.00");
// Line #8
System.out.println(testing.dispAmt.format(1974.545));
System.out.println(testing.dispAmt.format(1974.535));
}
}

OutPut:
=========
1,974.54
1,974.54


在上面的程序中,第 8 行有什么问题。为什么它不四舍五入为“1,974.55”?我哪里做错了!!请建议..

最佳答案

默认情况下DecimalFormat使用HALF_EVEN which的舍入模式

behaves as for RoundingMode.HALF_UP if the digit to the left of the discarded fraction is odd; behaves as for RoundingMode.HALF_DOWN if it's even.

在这种情况下,1974.5454 的倒数第二个最低有效数字是偶数,因此该值向下舍入。相反,3 的值是奇数,因此在后续 format 语句中进行了向上舍入。

尝试使用RoundingMode.HALF_UP

testing.dispAmt.setRoundingMode(RoundingMode.HALF_UP);

关于java - DecimalFormat 在舍入时是否不考虑小数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19633516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com