首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode11中的NumberFormatter

Xcode11中的NumberFormatter
EN

Stack Overflow用户
提问于 2019-10-10 23:44:28
回答 1查看 266关注 0票数 0

从过去的几个小时开始,我一直在挣扎。我的代码在Xcode10.XX中工作,在我更新到Xcode11后,numberFormatter停止工作,现在我无法从字符串值中获取数字。下面的代码在xcode 10中是552欧元,在xcode 11中是零。有人能帮我识别出问题是什么吗?

代码语言:javascript
复制
    let currencyFormatter = NumberFormatter()
    currencyFormatter.usesGroupingSeparator = true
    currencyFormatter.numberStyle = .currency

    currencyFormatter.locale = Locale(identifier: "de_DE")
    if let priceString = currencyFormatter.number(from: "552") {
        print(priceString) // Should Display 552 € in the German locale
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-11 00:11:16

问题是,您正在使用numberStylecurrencyNumberFormatter来转换包含常规数字"552“的字符串,该字符串不是货币字符串。这是行不通的。

您必须使用decimal样式将字符串转换为数字。之后,您可以使用currency样式将数字转换回字符串。

代码语言:javascript
复制
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "de_DE")

// string to number
formatter.numberStyle = .decimal
if let n = formatter.number(from: "552") {
    print(n) // prints "552"

    // number to string (formatted as currency)
    formatter.numberStyle = .currency
    if let s = formatter.string(from: n) {
        print(s) // prints "552,00 €"
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58326667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档