let need = (Singleton.shared.getTotalExpense(category: .need) / Singleton.shared.getTotalIncome()) * 100
needsLabel.text = "" + String(format: "%.f%%", need)
如果总支出和总收入都为零,我不希望退回NaN。我如何才能做到这一点,如果需要= Nan,它将返回0
[您需要有条件地检查分子和分母是否都为零,这是导致NaN
并有条件地将结果赋零的原因之一。
let expenses = Singleton.shared.getTotalExpense(category: .need)
let income = Singleton.shared.getTotalIncome()
let need = expenses == 0 && income == 0 ? 0.0 : expenses / income * 100
您还可以检查除法结果是否为NaN
(可能是任何操作数为Nan):
let ratio = expenses / income * 100
let need = ratio.isNaN ? 0.0 : ratio
[请注意,您可能还需要处理将非零除以零的情况-这将导致Inf
-这完全取决于您的用例。