Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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_Floating Point_Floating Accuracy_Floating Point Precision - Fatal编程技术网

Java浮点减法是无穷大吗?

Java浮点减法是无穷大吗?,java,floating-point,floating-accuracy,floating-point-precision,Java,Floating Point,Floating Accuracy,Floating Point Precision,在我的调试器中,我可以看到以下值: float min = -3.1931721E38 float max = 3.3434891E38 float temp = (max-min); 这将导致无穷大。为什么呢?(2-2^23)·2^127大于温度变量right?此减法的数学结果大于可能的最大浮点值。Java遵循IEEE关于浮点运算的规则,这会导致无穷大 如果您想要得到结果,则可以使用双精度s,它具有更高的精度和更大的有效值范围。此减法的数学结果大于最大可能的浮点值。Java遵循IEEE关于

在我的调试器中,我可以看到以下值:

float min = -3.1931721E38
float max = 3.3434891E38

float temp = (max-min);

这将导致无穷大。为什么呢?(2-2^23)·2^127大于温度变量right?

此减法的数学结果大于可能的最大浮点值。Java遵循IEEE关于浮点运算的规则,这会导致
无穷大


如果您想要得到结果,则可以使用双精度
s,它具有更高的精度和更大的有效值范围。

此减法的数学结果大于最大可能的
浮点
值。Java遵循IEEE关于浮点运算的规则,这会导致
无穷大

如果希望得到结果,则可以使用双精度
s,它具有更高的精度和更大的有效值范围。

来自

浮点乘法的结果由IEEE 754算术规则确定:

  • [……]
  • 如果乘积的大小太大而无法表示,我们称操作溢出结果是相应符号的无穷大

浮点乘法的结果由IEEE 754算术规则确定:

  • [……]
  • 如果乘积的大小太大而无法表示,我们称操作溢出结果是相应符号的无穷大

Float
值仅为32位(或4字节)。因此,您使用的容器对于可计算的答案来说太小了。然后缓冲区溢出


尝试使用更大的数据结构,如双精度
double
,它是一个64位(或8字节)的容器a
Float
值仅为32位(或4字节)。因此,您使用的容器对于可计算的答案来说太小了。然后缓冲区溢出


尝试使用更大的数据结构,如双精度的数据结构,它是一个64位(或8字节)的容器。

没有人回答您的实际问题,“(2-2^23)·2^127比temp变量大,对吗?”。答案是否定的(你指的是2^-23)。没有人回答你的实际问题,“(2-2^23)·2^127比温度变量大,对吗?”。答案是否定的(你的意思是2^-23)。