【发布时间】:2015-02-27 13:54:52
【问题描述】:
对于双精度或浮点数,
1. -inf < inf == true
2. inf + inf == inf
3. -inf - inf == -inf
4. positive / 0.0 == inf
5. negative / 0.0 == -inf
6. any real number < inf == true
7. -inf < any real number == true
这个说法是真的吗?
我们不知道(inf < inf),但我们可以确定它不会引发任何异常。
【问题讨论】:
-
将它写入 IDE 并按下构建不是更容易吗?
static_assert可能有用... -
是什么让你想到
num / 0.0 == inf?除以零在数学上是非法的。 -
用在线编译器试试吧,应该不会超过 5 分钟 :)
-
它在我的编译器中工作,但我想知道哪些是标准的。
-
@SnowInnocent:如果
std::numeric_limits<double>::is_iecsomething 为真,那么理想情况下您应该拥有 IIEE 754 规则。但是,特别是对于 g++,当您要求它进行优化时,这些规则就会被打破。因此,对于在实践中,无论正式情况如何,您都没有保证,但我认为即使在正式情况下也没有。
标签: c++ floating-point infinity