Java格式小数到2位精度

Java格式小数到2位精度,java,format,double,precision,decimalformat,Java,Format,Double,Precision,Decimalformat,现在我正在这样做 DecimalFormat df = new DecimalFormat("#.##"); //usage: df.format(someDouble); 但我不知道这是否是“四舍五入”显示双精度到小数点后2位的正确方法。即使小数点左边的位数大于1,这是否有效?您应该使用: DecimalFormat df = new DecimalFormat("#.00"); DecimalFormat df=新的DecimalFormat(“#.##”)表示这些小数位是可选的。当应用

现在我正在这样做

DecimalFormat df = new DecimalFormat("#.##");
//usage: df.format(someDouble);
但我不知道这是否是“四舍五入”显示双精度到小数点后2位的正确方法。即使小数点左边的位数大于1,这是否有效?

您应该使用:

DecimalFormat df = new DecimalFormat("#.00");
DecimalFormat df=新的DecimalFormat(“#.##”)表示这些小数位是可选的。当应用于
1.2
1.0
时,您可以看到差异


要回答有关舍入的问题,请告诉它:

四舍五入

DecimalFormat提供在RoundingMode中定义的用于格式化的舍入模式。默认情况下,它使用RoundingMode.HALF_偶数

因此,这取决于您设置所需的
RoundingMode


即使小数点左侧的位数大于1,此操作是否有效


是的,会的。

您测试过代码吗?输出是什么?我当时没有办法测试代码那么代码有什么问题?你是在问这样做的方式吗?专业提示:。如果您有权访问它,您就有办法测试代码(或至少是像这样的琐碎代码)。@Ironcache噢,太好了!我会试试的,谢谢如果小数点左边的位数大于1怎么办?就像我不知道为什么它是
#.00
而不是
.00
@KaliMa并不重要!整数不是四舍五入的:)@KaliMa为什么不试试看会发生什么?@Andreas我会的,但我没有办法在测试时测试我的代码moment@KaliMa请你澄清你最后的评论好吗?
public void setRoundingMode(RoundingMode roundingMode)