C++ 如何被零除而不出错

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:

我需要得到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::infinity();

请参阅,从标题

使用和或从

所有位于标题
@tehinternetsismadeofcatz中的,我添加了这一点,以及指向引用的链接。数学事实:不可能除以0。为什么要除以0?您的编译器可能有一个允许此操作的标志。这不是我平台上的编译器错误。@juanchopanza,好的,谢谢这个问题完美地突出了为什么当有人问一个看似奇怪的问题时,我们必须回答:“嗯,你想实现什么?不要告诉我们你的解决方案。告诉我们你的问题。”@MarkusMeskanen浮点事实:
1./0.
定义为
+inf
0./0.
定义为
NaN
return std::numeric_limits<float>::infinity();