Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 计算始终为0,请帮助我解决此问题_Swift - Fatal编程技术网

Swift 计算始终为0,请帮助我解决此问题

Swift 计算始终为0,请帮助我解决此问题,swift,Swift,我需要计算使用类的笔记本的所需数量 我创建了一个类,将计算属性放在那里,但它总是计算0,我如何修复它,错误在哪里 class workBook { // options let maxPages = 12 var text: Int var wordsOnPage = 42 var pagesCortage: (Int, Int) { let pages: Int = text / wordsOnPage let

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

我创建了一个类,将计算属性放在那里,但它总是计算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

使用以下代码,它工作正常。 您使用的是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

在calcWorkBookQuantity中使用float或double代替int。