Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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 - Fatal编程技术网

Java 为什么指数科学记数法要用双精度

Java 为什么指数科学记数法要用双精度,java,Java,为什么在java中将指数添加到double? e、 g:10000000(10^7)java双精度:1.0E7 为什么会这样 java为什么要在double中添加指数 因为这就是他们定义方法的方式,如所述 他们为什么这样定义它 因为double可以将值存储在4.9e-324(double.MIN_值)到1.7976931348623157e308(double.MAX_值)的范围内。由于它只有大约17位精度,如果不是用科学记数法格式化的话,这些极值的格式大约是300个零。那会有用吗 让我们看一个

为什么在java中将指数添加到double? e、 g:10000000(10^7)java双精度:1.0E7

为什么会这样

java为什么要在double中添加指数

因为这就是他们定义方法的方式,如所述

他们为什么这样定义它

因为
double
可以将值存储在
4.9e-324
double.MIN_值
)到
1.7976931348623157e308
double.MAX_值
)的范围内。由于它只有大约17位精度,如果不是用科学记数法格式化的话,这些极值的格式大约是300个零。那会有用吗

让我们看一个例子。以下哪一项更有用

见问题
答复:1.2⋅ 1057

在Java中,可以打印为:

  • 科学记数法:
    1.2E57
  • 十进制表示法:
    1200000000000000000000000000000000000000000000000000000000
以下哪一项更容易阅读和解释


更新

为什么它在107岁时就换成了科学记数法


可能是因为他们想同时切换
float
double
,而
float
的精度只有7位左右。这样,它就不会打印由于精度不足而导致的尾随零。

Java打印带有指数的双精度(默认情况下)。double到字符串的转换是非常重要的。double没有添加符号,数字本身没有符号;它是用符号表示的(作为字符串)。也许你可以用它来获得适当的格式