问题在Swift中乘以两个字符串值

时间:2018-03-04 19:52:47

标签: ios swift

我的标签中有两个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)

我很困惑为什么显示零值。我使用过断点。值也正常,但当它们传递给百分比时,它会崩溃应用程序。

1 个答案:

答案 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.totalDiscountString,则代码必须为:

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)"
}