如何在Swift中返回0而不是Nan?

问题描述 投票:-1回答:1
let need = (Singleton.shared.getTotalExpense(category: .need) / Singleton.shared.getTotalIncome()) * 100
      needsLabel.text = "" + String(format: "%.f%%", need)

如果总支出和总收入都为零,我不希望退回NaN。我如何才能做到这一点,如果需要= Nan,它将返回0

ios swift iphone xcode nan
1个回答
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-这完全取决于您的用例。

© www.soinside.com 2019 - 2024. All rights reserved.