【发布时间】:2014-12-12 17:00:37
【问题描述】:
什么是 1.#INF 以及为什么转换为 float 或 double 会防止除以 0 导致崩溃?
另外,关于如何防止被0除的任何好主意? (就像任何宏或模板一样)?
int nQuota = 0;
int nZero = 3 / nQuota; //crash
cout << nZero << endl;
float fZero = 2 / nQuota; //crash
cout << fZero << endl;
如果我改用:
int nZero = 3 / (float)nQuota;
cout << nZero << endl;
//Output = -2147483648
float fZero = 2 / (float)nQuota;
cout << fZero << endl;
//Output = 1.#INF
【问题讨论】:
-
哇很有趣。期待答案。
-
这可能对你来说很有趣:blog.regehr.org/archives/721
标签: c++