我需要使用类计算所需的笔记本数量
我创建了一个类,把计算出来的属性放在那里,但是它总是计算为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
答案 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