大佬教程收集整理的这篇文章主要介绍了Swift playground – 如何将带逗号的字符串转换为带小数的字符串,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
代码工作正常,带点(.)
问题是当我使用逗号(,)…时: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)
感谢您的时间和帮助!
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"
以上是大佬教程为你收集整理的Swift playground – 如何将带逗号的字符串转换为带小数的字符串全部内容,希望文章能够帮你解决Swift playground – 如何将带逗号的字符串转换为带小数的字符串所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。