C++ 浮点变量何时不等于自身
我在一次编程测试中被问到这个问题。问题是,我被作为一个参数以浮点形式传递,并被问到以下代码何时为falseC++ 浮点变量何时不等于自身,c++,floating-point,C++,Floating Point,我在一次编程测试中被问到这个问题。问题是,我被作为一个参数以浮点形式传递,并被问到以下代码何时为false bool result = (floatValue == floatValue); 我想不出一个合理的理由,或者说什么情况下这会是错误的,但仍然不能。最后,我回答说,永远不会有这种情况是错误的。我想知道是否有人能给我举一些例子,说明什么时候这是错误的 如果floatValue是非数字计算的结果,如0/0。//从电话中发布。意志edit@M.M当比较两个不同的浮点值时,这是正确的,但在这
bool result = (floatValue == floatValue);
我想不出一个合理的理由,或者说什么情况下这会是错误的,但仍然不能。最后,我回答说,永远不会有这种情况是错误的。我想知道是否有人能给我举一些例子,说明什么时候这是错误的
如果floatValue是非数字计算的结果,如0/0。//从电话中发布。意志edit@M.M当比较两个不同的浮点值时,这是正确的,但在这种情况下,我认为您是在比较一个变量和它本身。@M.M.不确定我是否理解
floatValue
这里指的是相同的左值。它只储存一次。我完全忘记了南。如果floatValue为INF,这是否也适用?或者这只是针对floatValue为NaN的情况?仅针对NaN。无穷大通常比较(-infinity<任何实数<+无穷大;+无穷大==+无穷大;等等)。