Swift 计算始终为0,请帮助我解决此问题
我需要计算使用类的笔记本的所需数量 我创建了一个类,将计算属性放在那里,但它总是计算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
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。