在java中,舍入一个两位数到三位数的小数位,但第三位的零消失

在java中,舍入一个两位数到三位数的小数位,但第三位的零消失,java,Java,我想用java将我的双精度小数四舍五入到小数点后3位 我不想删掉零。因此,如果我的double是2.34,我仍然希望它是2.340。使用以下十进制格式:0.000使用以下十进制格式:0.000 或者如果你想打印 System.out.printf( "%.3f",2.34); 或者如果你想打印 System.out.printf( "%.3f",2.34); 根据Tony Ennis的评论,如果不将浮点变量转换为10进制,则无法将其舍入到特定的小数位数或数字。这就是上面的答案所做的,他们也在

我想用java将我的双精度小数四舍五入到小数点后3位


我不想删掉零。因此,如果我的double是2.34,我仍然希望它是2.340。

使用以下十进制格式:0.000

使用以下十进制格式:0.000

或者如果你想打印

System.out.printf( "%.3f",2.34);
或者如果你想打印

System.out.printf( "%.3f",2.34);

根据Tony Ennis的评论,如果不将浮点变量转换为10进制,则无法将其舍入到特定的小数位数或数字。这就是上面的答案所做的,他们也在将其转换为可显示文本。

根据Tony Ennis的评论,如果不将浮点变量转换为10进制,则无法将其四舍五入到特定的小数位数或数字。这就是上面的答案所做的,他们还将其转换为可显示的文本。

使用和

使用及


@prashant请注意,数字在计算机中的存储方式和显示方式存在差异。这个答案和keshu的答案显示了如何显示尾随0的数字。它实际上不是那样存储的,但这并不重要。@prashant没有意识到数字在计算机中的存储方式和显示方式有区别。这个答案和keshu的答案显示了如何显示尾随0的数字。它实际上不是那样存储的,但那并不重要
DecimalFormat myFormatter = new DecimalFormat("0.000");
String output = myFormatter.format(2.34d);
    final DecimalFormat df = new DecimalFormat();
    df.setMinimumFractionDigits(3);
    df.setRoundingMode(RoundingMode.HALF_UP);
    df.format(2.34);