- 產生原因:
運算上進行了除以0的動作。
int _iShotHit = 0; //子彈命中數
int _iShotCount = 0; //子彈總發射量
//原本:
若完全沒開槍,
也就是 _iShotCount = 0的時候,
就會跳錯。
public float f_HitRate() {
return (_iShotHit / _iShotCount);
}
//改成 :
1. 對沒開槍的情況做額外處理。
public string f_HitRate() {
if (_iShotCount == 0) {
return "無射擊";
}
return (_iShotHit / _iShotCount).ToString();
}
2. 或是將參數類型從 int 轉成 float 的形式,
除以0的時候能得到以下結果:
0.0 / 0.0 = NaN (Not a Number)
5.0 / 0.0 = Infinity (無窮大)