在基本计算中得出“致命错误:被零除”

问题描述 投票:0回答:1

我得到这个:

“线程1:致命错误:被零除”

calculus()中,不知道为什么。

我已经处理了大约10个小时。我究竟做错了什么?我该如何解决?

class RegularFile {

    var rrLevelProgressXP : Int    
    var rrNextLevelXP : Int      
    var rrLevel : Int
    var rrNextLevel : Int
    var rrconsistency : Int
    var rrskill : Int
    var rrworkquality : Int
    var rrworktime : Int

    var rrProgressPercent : Float

    init() {
        self.rrLevelProgressXP = 15
        self.rrNextLevelXP = 0
        self.rrLevel = 0
        self.rrNextLevel = 0
        self.rrconsistency = 0
        self.rrskill = 0
        self.rrworkquality = 0
        self.rrworktime = 0
        self.rrProgressPercent = 0.0
    }


    func calculus() {
        rrProgressPercent = Float(((rrLevelProgressXP * 100) / rrNextLevelXP) / 100)

    }

if rrLevelProgressXP == 0 && rrLevelProgressXP <= 9 {
            rrLevel = 0
            rrNextLevel = 1
            rrNextLevelXP = 10
        } else if rrLevelProgressXP == 10 && rrNextLevelXP <= 24 {
            rrLevel = 1
            rrNextLevel = 2
            rrNextLevelXP = 25
           // more of the same
swift fatal-error
1个回答
0
投票

但是为什么不能为零?您将其设置为零,不是吗?您是否为其分配了其他任何值?

   self.rrNextLevelXP = 0  // <<----- set to zero
...

 rrProgressPercent = Float(((rrLevelProgressXP * 100) / rrNextLevelXP) / 100)
                                                        ^^^^^^^^^^^^^  divide by zero
© www.soinside.com 2019 - 2024. All rights reserved.