Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java(初学者)将科学记数法转换为十进制_Java_Decimal_Scientific Notation - Fatal编程技术网

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

java(初学者)将科学记数法转换为十进制,java,decimal,scientific-notation,Java,Decimal,Scientific Notation,如果 我希望我的输出为0.0001999 我怎么做呢?看一下 double d = 1.999e-4 及 您可以浏览NumberFormat类的子类以了解更多详细信息。您可以这样做: NumberFormat formatter = new DecimalFormat("###.#####"); String f = formatter.format(d); 查看NumberFormat方法的文档,按照您认为合适的方式格式化您的double DecimalFormat是Numbe

如果

我希望我的输出为0.0001999

我怎么做呢?

看一下

double d =  1.999e-4


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

您可以这样做:

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

String f = formatter.format(d);  
查看
NumberFormat
方法的文档,按照您认为合适的方式格式化您的
double


DecimalFormat
NumberFormat
的一个特例,正如它的构造函数所说,我认为您的案例不需要它的功能。如果您感到困惑,请查看他们的文档。为方便起见,请使用
NumberFormat
的工厂方法
getInstance()

如果您只想这样打印

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

您可以更改10f,10=所需的小数位数。

我想BigDecimal类中有一个名为
toPlainString()的方法。
。 e、 g.如果BigDecimal的值为1.23e-8,则该方法返回0.0000000124

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

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

非常感谢!(顺便说一句,我应该使用哪种数字格式和十进制格式??)非常感谢!如果有System.out.printf(“%3$.10f”,e,f,d),1$=?1$=参数索引是什么;你会使用3美元,因为你的目标是d。详情请看这里。您应该选择一个有帮助的答案和/或向上投票。我的Excel工作表编号是42.063706,但返回42。06370600000000337104211212135851383209228515625@AbdullahNurum您使用什么方法读取excel工作表并构造BigDecimal对象?当我用字符串文字“42.063706”构造它时,它输出正确的内容(与输入相同)。确保在读取和生成BigDecimal对象之间没有将其存储在浮点值中。在这段时间内,您应该将其作为字符串保存,以免丢失精度。
    double d = 1.999e-4;
    NumberFormat nf = NumberFormat.getInstance();
    nf.setMinimumFractionDigits(7);
    System.out.println(nf.format(d));
System.out.printf("%1$.10f", d);
BigDecimal d = new BigDecimal("1.23E-8");

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