在 SwiftUI 中显示具有指定小数位的浮点数

K. *_*Law 1 swiftui

我试图在 SwiftUI 中显示 Slider 的值,但我只想显示一位小数。

我知道如何使用 %.1f 在常规 Swift 中执行此操作,但这在 SwiftUI 中不起作用。

kon*_*iki 10

SwiftUI 没有什么特别之处:

struct ContentView : View {
    let myfloat: Float = 1.2345    

    var body: some View {
        let formattedFloat = String(format: "%.1f", myfloat)
        return Text("My Float: \(formattedFloat)")
    }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*rcy 6

iOS 15+

如果您愿意,此选项可以使用浮点格式样式:

struct ContentView: View {
    let myFloat: Float = 1.2345
    
    var body: some View {
        Text(String(myFloat.formatted(.number.precision(.fractionLength(1)))))
    }
}
Run Code Online (Sandbox Code Playgroud)

使用扩展名而不是上面的行的示例:

extension Float {
    func decimals(_ nbr: Int) -> String {
        String(self.formatted(.number.precision(.fractionLength(nbr))))
    }
}
Run Code Online (Sandbox Code Playgroud)

使用扩展:

Text(myFloat.decimals(1))
Run Code Online (Sandbox Code Playgroud)


Dew*_*wan 5

以下是如何使用 SwiftUI 在一行中完成。“%.2f”是小数点后两位的浮点数格式码

Text("You owe me \(balanceDue, specifier: "%.2f") before Tuesday")
Run Code Online (Sandbox Code Playgroud)