我正在尝试减少此简单函数的小数点,该小数点将返回某事的概率,但是我了解到我需要将Double转换为String,然后减少小数并在结果视图中返回字符串值。
是否有任何方法可以使Double变量(或其他更简单的方法)在Swift 5.1中仅在结果中显示2个小数点?
@State var pairCount = 0
@State var rollCount = 0
@State var pairChance : Double = 0
Text("\(pairChance) %")
Button(action: {
self.pairChance = Double(self.pairCount) / Double(self.rollCount) * 100.0
})
NumberFormatter
:NumberFormatter
@State var pairCount = 1.0
@State var rollCount = 3.0
@State var pairChance = "" // this should be a string, because numbers don't have a format. Strings do.
var formatter = { () -> NumberFormatter in
let f = NumberFormatter()
f.maximumFractionDigits = 2
f.numberStyle = .percent
return f
}()
var body: some View {
VStack {
Text("\(pairChance)")
Button(action: {
// here we format it
if let formatted = self.formatter.string(from: (self.pairCount / self.rollCount) as NSNumber) {
self.pairChance = formatted
}
}) {
Text("Button")
}
}
}
。specifier