尾随零,我无法理解,为什么这个代码retursn 10.0,而不是10的java +将字符串转换为Double追加后小数
Double inputDouble = Double.valueOf("10");
System.out.println(inputDouble);
要求是 如果我通过10.00,输出应为10.00
如果我通过10.0,输出应为10.0
和如果我通过10,输出应该是10
是有可能和在一个干净的方式
尾随零,我无法理解,为什么这个代码retursn 10.0,而不是10的java +将字符串转换为Double追加后小数
Double inputDouble = Double.valueOf("10");
System.out.println(inputDouble);
要求是 如果我通过10.00,输出应为10.00
如果我通过10.0,输出应为10.0
和如果我通过10,输出应该是10
是有可能和在一个干净的方式
的要求是,如果我通过10.00,输出应为10.00
然后你使用了错误的类型。 double
没有有效数字的概念--10,10.0和10.00之间没有区别。
你应该尝试使用BigDecimal
代替:
System.out.println(new BigDecimal("10")); // Prints 10
System.out.println(new BigDecimal("10.0")); // Prints 10.0
System.out.println(new BigDecimal("10.00")); // Prints 10.00
从别的
除此之外,即使double
做尽量保存微不足道的数字,它会考虑二进制数字,因为它是一个浮动二进制点类型。如果您对您提供的实际十进制数位感兴趣,那是使用BigDecimal
的另一个原因。
好吧,那么可以做些什么来删除/丢弃输出中的尾随零,它是Double类型的。所以Double inputDouble = Double.valueOf(“10”);返回10 –
@Naroji:你可以使用['DecimalFormat'](http://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html)。 –
'10.00' =='10.0' =='10',所以没有。 – Pshemo