12

如果

double d =  1.999e-4

我希望我的输出为 0.0001999。

我该怎么做?

4

5 回答 5

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

String f = formatter.format(d);  

您可以探索类的子类NumberFormat以了解更多详细信息。

于 2012-10-25T08:33:53.790 回答
5

你可以这样做:

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

查看NumberFormat's 方法的文档以double按照您认为合适的方式格式化您的文件。

DecimalFormat是其构造函数状态的特例NumberFormat,我认为您不需要它的功能来满足您的情况。如果您感到困惑,请查看他们的文档。为了您的方便,getInstance()请使用工厂方法。NumberFormat

于 2012-10-25T08:35:57.503 回答
5

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

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

System.out.println(d.toPlainString());

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

于 2015-07-08T13:56:46.100 回答
3

如果您只想这样打印。

System.out.printf("%1$.10f", d);

你可以改变 10f, 10=你想要的小数位数。

于 2012-10-25T08:36:18.980 回答
0

看一看

java.text.DecimalFormat

java.text.DecimalFormatSymbols
于 2012-10-25T08:31:30.793 回答