首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NumberFormatter不能正常工作

NumberFormatter不能正常工作
EN

Stack Overflow用户
提问于 2018-02-25 07:28:03
回答 2查看 889关注 0票数 2

我正在解码一个字符串形式的小数,我想格式化它并将其作为Double返回

代码语言:javascript
复制
let str = "0.945404"
let numberFormatter = NumberFormatter()
numberFormatter.maximumFractionDigits = 2
numberFormatter.roundingMode = .halfUp
numberFormatter.numberStyle = .decimal

print(numberFormatter.number(from: str))

numberFormatter.number(from: str)似乎返回了nil,我不知道为什么。

希望能帮上忙的人。谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-02-25 14:19:14

如果您要获取固定格式的十进制字符串,则需要使用匹配的地区设置您的数字格式化程序。如果不这样做,格式化程序将假定用户的区域设置,并且许多区域设置不使用.作为小数分隔符。

将字符串转换为数字时,也不需要设置小数位数。稍后,在向用户显示数字时,您可以使用另一个数字格式化程序(这次使用用户的区域设置)和所需的小数位数来获得可显示的字符串。

代码语言:javascript
复制
let str = "0.945404"
let numberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: "en_US")
numberFormatter.numberStyle = .decimal

print(numberFormatter.number(from: str))
票数 4
EN

Stack Overflow用户

发布于 2018-10-30 18:40:44

仅供参考:这个问题只发生在我在设备上测试的时候,在模拟器上,我猜格式化程序是选择美国的语言环境(尽管我已经激活了本地化,它应该是德语的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48968705

复制
相关文章

相似问题

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