【发布时间】:2018-10-30 17:22:18
【问题描述】:
当我使用#define INF (1.0/0.0) 定义无限数时,它称为错误C2124,这意味着常量表达式的分母为零。有人告诉不要除以零可以避免它。但是我真的需要定义无限数,有人可以提供一个简单的方法来解决它吗?
【问题讨论】:
标签: c++11 visual-studio-2015 computer-science
当我使用#define INF (1.0/0.0) 定义无限数时,它称为错误C2124,这意味着常量表达式的分母为零。有人告诉不要除以零可以避免它。但是我真的需要定义无限数,有人可以提供一个简单的方法来解决它吗?
【问题讨论】:
标签: c++11 visual-studio-2015 computer-science
不确定它是否适用于VS,尤其是这么旧的版本,但是STL has special provision for that:
double never = std::numeric_limits<double>::infinity();
【讨论】:
C++ 标准方法是利用<limits> 库中的函数std::numeric_limits<double>::infinity()。
这也只有在 std::numeric_limits<double>::has_infinity 是 true 时才有意义(通常是这样)。
【讨论】: