将字符串转换为货币数字格式,带,不带或不带小数位0

问题描述

我有一个始终会转换为this之类的字符串,在该字符串中,用户输入数字并始终以小数点开头,

所以我有0.01-> 0.10-> 1.00

但是我不想要那样的东西,我只想转换用户输入的内容

这是我现有的将100000转换为1,000.00的代码

func convertme(string: String) -> String{
    var number: NSNumber!
    let formatter = NumberFormatter()
    formatter.numberStyle = .currencyAccounting
    formatter.currencySymbol = ""
    formatter.maximumFractionDigits = 2
    formatter.minimumFractionDigits = 2

    var amountWithPrefix = string

    // remove from String: "$",".",","
    let regex = try! NSRegularExpression(pattern: "[^0-9]",options: .caseInsensitive)
    amountWithPrefix = regex.stringByReplacingMatches(in: amountWithPrefix,options: NSRegularExpression.MatchingOptions(rawValue: 0),range: NSMakeRange(0,string.count),withTemplate: "")
    
    print("amountWithPrefix",amountWithPrefix)

    let double = (amountWithPrefix as NSString).doubleValue
    number = NSNumber(value: (double / 100))

    // if first number is 0 or all numbers were deleted
    guard number != 0 as NSNumber else {
        return ""
    }

    return formatter.string(from: number)!
}

预期结果:

我想设置字符串格式的数字而不添加其他数据,我想将(100000.变成100,000。)(100000.0变成100,000.0

我希望将我的100000转换为100,000,并且如果用户也输入了十进制,则只能有一个十进制,因此当用户输入100000.00时,它将转换为100,000.00。

PS。我那里有一个正则表达式,只接受数字但不接受小数,如何使它也接受小数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)