java中浮点值的-1多重分层

java中浮点值的-1多重分层,java,floating-point,multiplication,Java,Floating Point,Multiplication,为什么当0.0乘以-1时我得到-0.0??? 我已将0.0作为浮点数 sign=-1; float output=0.0; JOptionPane.showmessagedialog(null,0.0*sign); 显示在-0.0而不是0中的输出这是从 这是一个来自中国的答案 浮点值同时具有正零和负零。这可能看起来很奇怪,但有一个很好的理由(考虑到浮点数的代表性限制) 你可以考虑把你的结果投射到 int /代码>,如果你真的喜欢这个答案,那就是 0 。< /P> < P>浮点值既有正值也有负值

为什么当0.0乘以-1时我得到-0.0??? 我已将0.0作为浮点数

sign=-1;
float output=0.0;
JOptionPane.showmessagedialog(null,0.0*sign);

显示在-0.0而不是0中的输出这是从


这是一个来自中国的答案


浮点值同时具有正零和负零。这可能看起来很奇怪,但有一个很好的理由(考虑到浮点数的代表性限制)


你可以考虑把你的结果投射到<代码> int /代码>,如果你真的喜欢这个答案,那就是<代码> 0 。< /P> < P>浮点值既有正值也有负值。这可能看起来很奇怪,但有一个很好的理由(考虑到浮点数的代表性限制)


你可以考虑将你的结果转换成<代码> int >代码>如果你真的喜欢这个答案,只需是<代码> 0代码/> >

< p> java浮点中的零点不只是表示实数0。它们用于表示绝对大小太小而无法表示为非零数的每个数字、每个下溢结果

类似地,无穷大不仅表示被零除的结果,而且表示绝对大小太大而无法表示为有限数的每个结果,每个溢出结果


使用零符号可以区分正下溢结果和负下溢结果,如另一个答案中所述,包括将非零数除以下溢结果得到正确的无穷大。

Java浮点中的零不仅仅代表实数零。它们用于表示绝对大小太小而无法表示为非零数的每个数字、每个下溢结果

类似地,无穷大不仅表示被零除的结果,而且表示绝对大小太大而无法表示为有限数的每个结果,每个溢出结果


使用零符号可以区分正下溢结果和负下溢结果,包括,如另一个答案中所述,将非零数除以下溢结果得到正确的无穷大。

我认为这是正确的行为。你期望发生什么?我们应该得到0.0或0对吗??为什么是-0.0?不。您正在体验已知的、正确的浮点运算行为。我能解释一下为什么浮点有这样的值吗?因为在算术中,0.0*-1应该是0.0,-0.0是0.0的负数。为什么不应该得到这个值?这个标志是分开的。这意味着每个正值都有一个负值。顺便说一句,1/0.0是正无穷大,1/-0.0是负无穷大。对我来说,这似乎是正确的行为。你期望发生什么?我们应该得到0.0或0对吗??为什么是-0.0?不。您正在体验已知的、正确的浮点运算行为。我能解释一下为什么浮点有这样的值吗?因为在算术中,0.0*-1应该是0.0,-0.0是0.0的负数。为什么不应该得到这个值?这个标志是分开的。这意味着每个正值都有一个负值。顺便说一句,1/0.0是正无穷大,1/-0.0是负无穷大。谢谢你,盖恩克先生。非常感谢你,盖恩先生谢谢你的解释谢谢你的解释
 "-0.0" Is produced when a floating-point operation results in a negative floating-point number so close to 0 that cannot be represented normally.

  -2.0 / Float.POSITIVE_INFINITY -> -0.0 

"-0.0" Is numerically identical to "0.0". However, some operations involving "-0.0" are different than the same operation with "0.0".

  (-0.0) == 0.0 -> true 
  2.0 / (0.0) - Infinity 
  2.0 / (-0.0) ->-Infinity