快速减少(调整)Double / Float变量小数点

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

我正在尝试减少此简单函数的小数点,该小数点将返回某事的概率,但是我了解到我需要将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
                      })
swift double decimal-point swift5.1
2个回答
0
投票
您可以使用NumberFormatter

NumberFormatter


0
投票
尝试在字符串插补中使用@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

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.