如果
double d = 1.999e-4
我希望我的输出为0.0001999。
我该怎么做?
答案 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
。
DecimalFormat
是NumberFormat
的特殊情况,因为它的构造函数状态,我不认为你需要它的功能。如果您感到困惑,请查看他们的文档。为方便起见,请使用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