如何将包含 % 的字符串转换为 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)
}
}
代码如下:
@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)
}
}