将非常小的double转换为String

cd1*_*cd1 5 java string double numbers

我有一个非常小的数字,我想将其转换为具有完整数字的字符串,而不是以任何方式缩写.我不知道这个数字有多小.

例如,当我跑:

double d = 1E-10;
System.out.println(d);
Run Code Online (Sandbox Code Playgroud)

它显示1.0E-10而不是0.000000001.

我已经尝试了,NumberFormat.getNumberInstance()但它格式化为0.而我不知道使用什么表达式来DecimalFormat处理任何数字.

rya*_*ogo 10

假设您在执行以下操作时需要在数字前面加500个零:

double d = 1E-500;
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

double d = 1E-10;
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(Integer.MAX_VALUE);
System.out.println(nf.format(d));
Run Code Online (Sandbox Code Playgroud)