java(初学者)将科学记数法转换为十进制

hib*_*ibc 11 java scientific-notation decimal

如果

double d =  1.999e-4
Run Code Online (Sandbox Code Playgroud)

我希望我的输出为0.0001999.

我该怎么做?

RP-*_*RP- 9

NumberFormat formatter = new DecimalFormat("###.#####");  

String f = formatter.format(d);  
Run Code Online (Sandbox Code Playgroud)

您可以浏览类的子类NumberFormat以了解更多详细信息.


Ada*_*old 5

你可以这样做:

    double d = 1.999e-4;
    NumberFormat nf = NumberFormat.getInstance();
    nf.setMinimumFractionDigits(7);
    System.out.println(nf.format(d));
Run Code Online (Sandbox Code Playgroud)

查看您认为合适的NumberFormat格式化文档double.

DecimalFormat是一个特殊情况NumberFormat作为其构造函数状态,我不认为你需要它的功能为您的情况.如果您感到困惑,请查看他们的文档.使用工厂方法getInstance()NumberFormat为您提供方便.


小智 5

我想BigDecimal Class中有一个方法叫做toPlainString().例如,如果BigDecimal是1.23e-8,则该方法返回0.0000000124.

BigDecimal d = new BigDecimal("1.23E-8");

System.out.println(d.toPlainString());
Run Code Online (Sandbox Code Playgroud)

上面的代码打印0.0000000123,然后您可以根据您的要求处理字符串.