C++ 如何被零除而不出错
我需要得到float NaN和无穷大,但我不能使用这样的结构C++ 如何被零除而不出错,c++,compiler-errors,floating-point,nan,C++,Compiler Errors,Floating Point,Nan,我需要得到float NaN和无穷大,但我不能使用这样的结构 0. / 0. 1. / 0. 因为它会导致编译时间 错误C2124:除以或模乘零 编辑,很酷,我可以从哪里得到这个数字(+1)的答案,但是可以被零除吗 您可以简单地返回NaN或无穷大,例如: return std::numeric_limits<float>::quiet_NaN(); return std::numeric_limits::quiet_NaN(); 或 返回std::numeric_limits:
0. / 0.
1. / 0.
因为它会导致编译时间
错误C2124:除以或模乘零
编辑,很酷,我可以从哪里得到这个数字(+1)的答案,但是可以被零除吗 您可以简单地返回NaN或无穷大,例如:
return std::numeric_limits<float>::quiet_NaN();
return std::numeric_limits::quiet_NaN();
或
返回std::numeric_limits::infinity();
请参阅,从标题
使用和或从
所有位于标题
@tehinternetsismadeofcatz中的,我添加了这一点,以及指向引用的链接。数学事实:不可能除以0。为什么要除以0?您的编译器可能有一个允许此操作的标志。这不是我平台上的编译器错误。@juanchopanza,好的,谢谢这个问题完美地突出了为什么当有人问一个看似奇怪的问题时,我们必须回答:“嗯,你想实现什么?不要告诉我们你的解决方案。告诉我们你的问题。”@MarkusMeskanen浮点事实:1./0.
定义为+inf
和0./0.
定义为NaN
。
return std::numeric_limits<float>::infinity();