Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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 无法将双精度值转换为小数点后2位_Java - Fatal编程技术网

Java 无法将双精度值转换为小数点后2位

Java 无法将双精度值转换为小数点后2位,java,Java,我尝试使用以下两种方法将double值转换为小数点后2位 十进制格式 double value = 2.384185791015625E-4; DecimalFormat df = new DecimalFormat("###.##"); System.out.println(df.format(value)); 数学圆 double value = 2.384185791015625E-4; double newValue = Math.round(value*100.0)/100.0; S

我尝试使用以下两种方法将
double
值转换为小数点后2位

十进制格式

double value = 2.384185791015625E-4;
DecimalFormat df = new DecimalFormat("###.##");
System.out.println(df.format(value));
数学圆

double value = 2.384185791015625E-4;
double newValue = Math.round(value*100.0)/100.0;
System.out.println(newValue);
在这两种情况下,我都得到
0
输出。我希望输出为
2.38

任何人都可以建议如何解决此问题。

您不会得到2.38,因为双精度的值是
0.0002384185791015625

由于您将四舍五入到小数点后两位,您将得到
0.00

我原以为输出为2.38
您的数字是
0.0002384185791015625
,所以四舍五入到小数点后两位就剩下
0.00
。您认为
E-4
后缀是什么意思?看看@tkausl你能告诉我,你是如何将2.384185791015625625E-4转换成0.0002384185791015625.这可以解决我的问题。它已经有了那个值,没有必要转换它
Xe-4
是一种表达它的
x*10^(-4)
。这意味着它是
x
,但向右移动了
4次。因此,如果我们有
2.5E-4
,则值为
0.00025
。特别是当具有较小的值时,如
0.00000000 25
,如果您改为编写
2.5E-9
,则该值更易于阅读和理解。当您进行否决表决时,添加注释将清楚说明为什么进行否决表决