计算结果始终为 0,请帮我解决这个问题

时间:2021-05-10 04:55:34

标签: swift

我需要使用类计算所需的笔记本数量

我创建了一个类,把计算出来的属性放在那里,但是它总是计算为0,我该如何修复它,错误在哪里?

class workBook {
    
    // options
    let maxPages = 12
    var text: Int
    var wordsOnPage = 42
    var pagesCortage: (Int, Int) {
        let pages: Int = text / wordsOnPage
        let modFromPages: Int = text % wordsOnPage
        return (pages, modFromPages)
    }
    
    // calculate option
    var calcWorkBookQuantity: Int {
        var needWB: Int
        if pagesCortage.1 > 0 {
            needWB = (pagesCortage.0 + 1) / maxPages
        } else {
            needWB = pagesCortage.0 / maxPages
        }
        return needWB
    }
    
    // functions
    func test() -> String {
     return "Test"
    }
    
    // lazys options
    lazy var testString = test()
    
    
    // init
    init(text: Int) {
        self.text = text
    }
}

var homeWork = workBook(text: 254)
var howMuchWorkBooks = homeWork.calcWorkBookQuantity

1 个答案:

答案 0 :(得分:-1)

使用以下代码可以正常工作。 您使用的是 Int 而不是 Float。我使用 round 来确保正确捕获浮点值。

    class workBook {
    
    // options
    let maxPages = 12
    var text: Int
    var wordsOnPage = 42
    var pagesCortage: (Int, Int) {
        let pages: Int = text / wordsOnPage
        let modFromPages: Int = text % wordsOnPage
        return (pages, modFromPages)
    }
    
    // calculate option
    var calcWorkBookQuantity: Int {
        var needWB: Int
        if pagesCortage.1 > 0 {
            needWB = Int((Float(pagesCortage.0 + 1) / Float(maxPages)).rounded(.up))
        } else {
            needWB = pagesCortage.0 / maxPages
        }
        return needWB
    }
    
    // functions
    func test() -> String {
     return "Test"
    }
    
    // lazys options
    lazy var testString = test()
    
    
    // init
    init(text: Int) {
        self.text = text
    }
}

    var homeWork = workBook(text: 250)
    var howMuchWorkBooks = homeWork.calcWorkBookQuantity