【发布时间】:2013-11-29 18:17:48
【问题描述】:
我试图弄清楚如何将负无穷大的值分配给浮点或双精度变量。似乎包括标准库限制,我可以获得无穷大表示,并且我知道(非常肯定)在它前面添加一个减号(-infinity)可能会导致我在 IEEE754 浮点中寻找的值标准(因为 0x7FFFFFFF 可能会导致 0xFFFFFFFF),但我什至不确定,更不用说可能存在的其他标准(如果有的话)。我发现它非常非常不专业并且依赖于实施。
有没有什么好的方法可以独立获取负无穷平台的值和实现,不然我还不如用#define,大家都喜欢预处理。
【问题讨论】:
-
只是出于好奇,你为什么还要-inf?
-
我有一个图表,我想确定哪个邻居是最好的选择(它是某种游戏的人工智能)但是为每个邻居节点分配一个数字的函数可以返回大的负数。为了检查最大值,我想将变量初始化为一个与任何东西相比总是会导致“小于”的值,当然还有其他方法可以做到这一点,但是当我没有找到 -inf我很好奇,因为我知道的所有其他编程语言都有正无穷和负无穷值的定义。
-
也许您应该为此使用第一个元素,而不是负无穷大?
-
当然,您可以随时使用
-1/.0。非常适合打高尔夫球。 -
@Setzer22 - 如果“数学上准确”的意思是“与实数完全一样”,那么浮点数学中的任何内容都不是“数学上准确的”。浮点数学有自己的一套规则,你必须使用它定义的系统,而不是你习惯的系统。
<g>接近实数的情况,但不一样。
标签: c++ numeric-limits