我的标签中有两个String类型的值。我试图将这些值相乘。当我乘以它时,我得到错误或找到零值。我试过这段代码:
let percentage = (Int(self.subTotalLbl.text!)! * Int(self.totalDiscount)) / 100
print(self.perTotal)
let grandTotal = Int(self.subTotalLbl.text!)! - percentage
self.grandTotalLbl.text = String(grandTotal)
我很困惑为什么显示零值。我使用过断点。值也正常,但当它们传递给百分比时,它会崩溃应用程序。
答案 0 :(得分:0)
您需要正确处理可选值并将字符串转换为数字。
if let text = self.subTotalLbl.text, let subtotal = Int(text) {
let percentage = subtotal * Int(self.totalDiscount) / 100
let grandTotal = subTotal - percentage
self.grandTotalLbl.text = "\(grandTotal)"
}
我假设self.totalDiscount
是某种数字数据类型。
如果出于某种奇怪的原因self.totalDiscount
是String
,则代码必须为:
if let text = self.subTotalLbl.text, let subtotal = Int(text), let discount = Int(self.totalDiscount) {
let percentage = subtotal * discount / 100
let grandTotal = subTotal - percentage
self.grandTotalLbl.text = "\(grandTotal)"
}