有人能告訴我如何用「。」替換「,」分隔符。在我的文本框?用戶可以輸入類似於「5,6」的東西,但是當他按下一個按鈕時,我想將他輸入的數據作爲「5,6」輸入到「5.6」,因爲否則不會進行小數計算。用TextField中的小數點分隔符替換逗號
我有這個擴展字符串文件,但似乎工作僅限於1逗號文本的限制&逗號後面的2個十進制數,沒有將「,」轉換爲「。」。
extension String {
private static let decimalFormatter:NumberFormatter = {
let formatter = NumberFormatter()
formatter.allowsFloats = true
return formatter
}()
private var decimalSeparator:String{
return String.decimalFormatter.decimalSeparator ?? "."
}
func isValidDecimal(maximumFractionDigits:Int)->Bool{
guard self.isEmpty == false else {
return true
}
// Check if valid decimal
if let _ = String.decimalFormatter.number(from: self){
// Get fraction digits part using separator
let numberComponents = self.components(separatedBy: decimalSeparator)
let fractionDigits = numberComponents.count == 2 ? numberComponents.last ?? "" : ""
return fractionDigits.characters.count <= maximumFractionDigits
}
return false
}
var doubleValue: Double {
let nf = NumberFormatter()
nf.decimalSeparator = "."
if let result = nf.number(from: self) {
return result.doubleValue
} else {
nf.decimalSeparator = ","
if let result = nf.number(from: self) {
return result.doubleValue
}
}
return 0
}
}
謝謝!這工作! – AndreiVataselu