Java奇怪的十进制舍入

Java奇怪的十进制舍入,java,Java,我尝试了上述方法,将数字四舍五入到小数点后1位,但如果没有小数,则似乎四舍五入到整数值(例如,2.0将显示为2)。我希望2.0以及任何其他输入数字显示在小数点后1位。此外,当十进制格式将负数舍入为0时,它将其转换为-0。如何解决这些问题?使用“0.0”作为格式字符串表示一个数字,如果为零,则表示空白,这是您看到的 要去除符号,请查看。输出没有任何奇怪之处。格式不符合您的要求 在DecimalFormat#中,只有在字符有意义时,才会以指定的小数位输出字符。所以10.00就是10。如果希望小数位数

我尝试了上述方法,将数字四舍五入到小数点后1位,但如果没有小数,则似乎四舍五入到整数值(例如,2.0将显示为2)。我希望2.0以及任何其他输入数字显示在小数点后1位。此外,当十进制格式将负数舍入为0时,它将其转换为-0。如何解决这些问题?

使用“0.0”作为格式字符串表示一个数字,如果为零,则表示空白,这是您看到的


要去除符号,请查看。

输出没有任何奇怪之处。格式不符合您的要求

DecimalFormat
#
中,只有在字符有意义时,才会以指定的小数位输出字符。所以10.00就是10。如果希望小数位数有效,则需要使用
0

double number = Scanner.nextDouble();    
DecimalFormat df = new DecimalFormat("#.#");
        System.out.print (df.format(number));
这方面的示例输出为:

new DecimalFormat("#.0");

如果你想在小数点前加0,那么你可以使用
#0.0

谢谢,它现在返回0.0表示0,但我仍然有一个问题,它现在将负数舍入到接近0到-0.0的位置:/我已经添加了一个指向答案的链接-希望有帮助。关于
-0.0
请参阅-maybe-0.01。如果在Java8中解决了这个问题,我不会感到惊讶。
0.11 - .1
10.00 - 10.0
10.4545 - 10.5
.00 - .0
455 - 455.0