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

时间:2012-10-25 08:27:46

标签: java decimal scientific-notation

如果

double d =  1.999e-4

我希望我的输出为0.0001999。

我该怎么做?

5 个答案:

答案 0 :(得分:9)

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

String f = formatter.format(d);  

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

答案 1 :(得分:5)

你可以这样做:

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

查看NumberFormat方法的文档,以便根据需要格式化double

DecimalFormatNumberFormat的特殊情况,因为它的构造函数状态,我不认为你需要它的功能。如果您感到困惑,请查看他们的文档。为方便起见,请使用getInstance()的工厂方法NumberFormat

答案 2 :(得分:5)

我认为BigDecimal Class中有一个名为toPlainString()的方法。 例如如果BigDecimal是1.23e-8,则该方法返回0.0000000124。

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

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

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

答案 3 :(得分:4)

如果您想要的就是那样打印。

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

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

答案 4 :(得分:0)

看看

java.text.DecimalFormat

java.text.DecimalFormatSymbols