Swift playground – 如何将带逗号的字符串转换为带小数的字符串
发布时间:2020-12-14 05:33:30 所属栏目:百科 来源:网络整理
导读:我是斯威夫特世界的新手. 如何将带逗号的String转换为带小数的String? 代码工作正常,带点(.) 问题是当我使用逗号(,)…时:var price 问题的起源是Decimal法语键盘使用逗号(,)而不是点(.) 如果它是密钥,不知道如何使用NSNumberFormatter或generateDecimalNum
我是斯威夫特世界的新手.
如何将带逗号的String转换为带小数的String? 代码工作正常,带点(.) 问题是当我使用逗号(,)…时:var price 问题的起源是Decimal法语键盘使用逗号(,)而不是点(.) 如果它是密钥,不知道如何使用NSNumberFormatter或generateDecimalNumbers.有不止一个选择. //The answer change if "2,25" or "2.25" is used. var price : String = "2,25" var priceFloat = (price as NSString).floatValue //I need to have 2.25 as answer. var costString = String(format:"%.2f",priceFloat) 感谢您的时间和帮助!
更新:Xcode 8.2.1?Swift 3.0.2
您可以使用NumberFormatter()将字符串转换为数字.您只需要指定decimalSeparator,如下所示: extension String { static let numberFormatter = NumberFormatter() var doubleValue: Double { String.numberFormatter.decimalSeparator = "." if let result = String.numberFormatter.number(from: self) { return result.doubleValue } else { String.numberFormatter.decimalSeparator = "," if let result = String.numberFormatter.number(from: self) { return result.doubleValue } } return 0 } } "2.25".doubleValue // 2.25 "2,25".doubleValue // 2.25 let price = "2,25" let costString = String(format:"%.2f",price.doubleValue) // "2.25" 您还应该使用NumberFormat进行货币格式化,因此创建一个只读计算属性货币,扩展FloatingPoint协议以从String doubleValue属性返回格式化字符串. extension NumberFormatter { convenience init(style: Style) { self.init() self.numberStyle = style } } extension Formatter { static let currency = NumberFormatter(style: .currency) } extension FloatingPoint { var currency: String { return Formatter.currency.string(for: self) ?? "" } } let costString = "2,25".doubleValue.currency // "$2.25" Currency.formatter.locale = Locale(identifier: "en_US") "2222.25".doubleValue.currency // "$2,222.25" "2222,25".doubleValue.currency // "$2,222.25" Currency.formatter.locale = Locale(identifier: "pt_BR") "2222.25".doubleValue.currency // "R$2.222,25" "2222,25".doubleValue.currency // "R$2.222,25" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |