1

如果在 SwiftUI 中执行计算并且没有向文本字段添加任何值,则会显示“-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!

}

图像显示

谢谢

4

1 回答 1

1

这是可能的方法

VStack {
    Text ("\(Brutto.isNaN ? 0 : Brutto, specifier: "%.1f")")
}
于 2020-02-20T13:15:52.557 回答