Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift playground – 如何将带逗号的字符串转换为带小数的字符串大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我是斯威夫特世界的新手. 如何将带逗号的String转换为带小数的String? 代码工作正常,带点(.) 问题是当我使用逗号(,)…时:var price 问题的起源是decimal法语键盘使用逗号(,)而不是点(.) 如果它是密钥,不知道如何使用NSnumberFormatter或generatedecimalnumbers.有不止一个选择. //The answer change if "2
我是斯威夫特世界的新手.

如何将带逗号的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"

大佬总结

以上是大佬教程为你收集整理的Swift playground – 如何将带逗号的字符串转换为带小数的字符串全部内容,希望文章能够帮你解决Swift playground – 如何将带逗号的字符串转换为带小数的字符串所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。