如何将包含 % 的字符串转换为 Swift 中的 Int

How to convert a String that contains % into an Int in Swift

代码如下:

@IBAction func calculatePressed(_ sender: UIButton) {
    let tip = tipPercentSelected.currentTitle ?? "unknown"
    print(tip)
    }

'tipPercentSelected' 这里表示可以由用户选择的以 % 为单位的小费数量,例如20%。在代码中,这个 'tipPercentSelected' 如果是字符串类型。 当按下相关按钮时,我需要将 0.2 而不是 20% 打印到控制台。但是,如果将 'tipPercentSelected' 转换为 Int,它会给出 nil

@IBAction func calculatePressed(_ sender: UIButton) {
    let tip = tipPercentSelected.currentTitle ?? "unknown"
    print(tip)
    let tipConverted = Int(tip)
    print(tipConverted)
    
    }

我需要什么代码才能获得 0.2 而不是 20%? 谢谢

您应该使用样式设置为 percent

NumberFormatter
let tipPercent = "20%"

let formatter = NumberFormatter()
formatter.numberStyle = .percent

if let tip = formatter.number(from: tipPercent) {
    print(tip)
}

这会打印 0.2

在你的视图控制器中它可能是这样的

static private let formatter: NumberFormatter = {
    let formatter = NumberFormatter()
    formatter.numberStyle = .percent
    return formatter
}()

func calculatePressed(_ sender: UIButton) {
    if let tip = tipPercentSelected.currentTitle, let tipConverted = Self.formatter.number(from: tip) {
        print(tipConverted)
    }
}