将小数点后两位数舍入到3位小数点,但在小数点后三位消失0

问题描述:

我想在java中将我的double加3位小数位。将小数点后两位数舍入到3位小数点,但在小数点后三位消失0

我不想削减零。所以如果我的double是2.34,我仍然希望它是2.340。

+1

的可能重复的[圆形双到小数点后2个显著附图](http://*.com/questions/2808535/round-a-double-to- 2位有效数字 - 小数点后的数字) – tchrist 2012-09-05 23:23:19

使用以下十进制格式:0.000

+0

@prashant请注意,数字在计算机中的存储方式以及显示方式存在差异。这个答案和keshu的,显示了如何显示尾数为0的数字。它实际上并不是以这种方式存储的,但这并不重要。 – 2010-09-24 13:57:34

String res = String.format("%.3f", 2.34); 

,或者如果你想打印

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

DecimalFormat myFormatter = new DecimalFormat("0.000"); 
String output = myFormatter.format(2.34d); 

托尼·恩尼斯的评论之后,你不能圆浮点可变为特定的小数位数或位数,但不将其转换为基数为10的小数位数或这就是上面的答案,他们也将它转换成可显示的文本。

使用setMinimumFractionDigitssetRoundingMode

final DecimalFormat df = new DecimalFormat(); 
    df.setMinimumFractionDigits(3); 
    df.setRoundingMode(RoundingMode.HALF_UP); 
    df.format(2.34);