如何将带逗号的String转换为带小数的String?@H_502_2@
代码工作正常,带点(.)@H_502_2@
问题是当我使用逗号(,)…时:var price@H_502_2@
问题的起源是Decimal法语键盘使用逗号(,)而不是点(.)@H_502_2@
如果它是密钥,不知道如何使用NSNumberFormatter或generateDecimalNumbers.有不止一个选择.@H_502_2@
//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)
感谢您的时间和帮助!@H_502_2@ 更新: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.25let price = "2,25"let costString = String(format:"%.2f",price.doubleValue) // "2.25"
您还应该使用NumberFormat进行货币格式化,因此创建一个只读计算属性货币,扩展floatingPoint协议以从String doubleValue属性返回格式化字符串.@H_502_2@
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 // ".25"
Currency.formatter.locale = Locale(IDentifIEr: "en_US")"2222.25".doubleValue.currency // ",222.25""2222,25".doubleValue.currency // ",222.25"Currency.formatter.locale = Locale(IDentifIEr: "pt_BR")"2222.25".doubleValue.currency // "R.222,25""2222,25".doubleValue.currency // "R.222,25"总结
以上是内存溢出为你收集整理的Swift playground – 如何将带逗号的字符串转换为带小数的字符串全部内容,希望文章能够帮你解决Swift playground – 如何将带逗号的字符串转换为带小数的字符串所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)