Java尼斯格式双精度

Java尼斯格式双精度,java,string,double,Java,String,Double,如何将double格式化为字符串,使其显示所有(无限制)小数位(如果有),但不显示任何尾随的0 double x = ...; DecimalFormat fmt = new DecimalFormat(); fmt.setMinimumFractionDigits(0); fmt.setMaximumFractionDigits(Integer.MAX_VALUE); System.out.println(fmt.format(x)); Integer.MAX_值是一个愚蠢的数字,但任何足够

如何将double格式化为字符串,使其显示所有(无限制)小数位(如果有),但不显示任何尾随的0

double x = ...;
DecimalFormat fmt = new DecimalFormat();
fmt.setMinimumFractionDigits(0);
fmt.setMaximumFractionDigits(Integer.MAX_VALUE);
System.out.println(fmt.format(x));
Integer.MAX_值是一个愚蠢的数字,但任何足够大的数字都可以,正如您将从setMaximumFractionDigits javadoc中看到的:

设置数字小数部分允许的最大位数。对于除BigInteger和BigDecimal对象之外的数字格式,使用newValue和340中的较低者。负输入值替换为0


更好地看一下Javadoc,对于十进制表示形式有无限位数的双精度浮点,您打算做什么?对于十进制表示形式实际上有无限零的双精度浮点,您打算做什么-O@yshavit将其显示为近似值。基本上使其可读,但精度最高。