무엇이 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
와우 흥미로운. 답변을 기대합니다. –
이것은 흥미로울 것입니다 : http://blog.regehr.org/archives/721 – cppanda