NaN 当计算内部没有值时显示。如何在 SwiftUI 中显示“0”或“-”?

问题描述 投票:0回答:1

如果在 SwiftUI 中执行计算并且没有值添加到 TextField,它会显示“-NaN”(不是数字?)。

在插入值之前如何显示值(例如“0”、“-”)?

我尝试添加

@State private var display = 0
但它显示了两个值...

示例代码:

 struct ContentView: View {
    @EnvironmentObject var userData: UserData
        
    var Brutto: Double {
        let price = Double(userData.BPrice) ?? 0
        let rent = Double(userData.Rent) ?? 0
            
        let Brutto = rent * 12 / price * 100
            
        return Brutto
    }
    
    var body: some View {
        VStack {            
            Text ("\(Brutto, specifier: "%.1f")")
        }

// 用户数据文件:

class UserData : ObservableObject {

  private static let userDefaultBPrice = "BPrice"
  private static let userDefaultRent = "Rent"


  @Published var BuyingPrice = UserDefaults.standard.string(forKey: UserData.userDefaultBPrice) ?? "" 
  {
    didSet {
      UserDefaults.standard.set(self.BPrice, forKey: UserData.userDefaultBPrice)
    }
  }

  @Published var Rent = UserDefaults.standard.string(forKey: UserData.userDefaultRent) ?? "" {
    didSet {
      UserDefaults.standard.set(self.Rent, forKey: UserData.userDefaultRent)
    }
  }
  private var canc: AnyCancellable!

}

谢谢

string formatting swiftui nan
1个回答
1
投票

这是可能的方法

VStack {
    Text ("\(Brutto.isNaN ? 0 : Brutto, specifier: "%.1f")")
}
© www.soinside.com 2019 - 2024. All rights reserved.