切換
舊版
前往
大廳
主題

(Unity) DivideByZeroException: Division by zero

浪濤書記 | 2018-12-11 16:45:37 | 巴幣 0 | 人氣 225

- 產生原因:
運算上進行了除以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 (無窮大)


送禮物贊助創作者 !
0
留言

創作回應

更多創作