ios - 将 NSString 转换为双精度 - Objective-C
问题描述
我对将 NSString 转换为 double 感到困惑,有时它可以工作,有时它不会。
//eg: NSString *string = @"0,50"
一种)
double d = [string doubleValue];
// -> d is 0.00
b)
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:2];
NSNumber *num = [formatter numberFromString:string];
double d = [num doubleValue];
// -> d is <null>
我还能尝试什么?为什么有时会起作用?
先感谢您!
解决方案
In NSNumberFormatterDecimalStyle
,
(逗号)用于分隔数字组(千、百万等),而不是小数点。这更多是一个地区问题。使用标准小数点的语言环境。
- -编辑 - -
语言环境是给定环境的语言设置,用于将许多值表示为字符串(或相反)。因此,请尝试使用,
用作小数点的语言环境(例如fr
法语)。NSNumberFormatter
有一个名为locale
修改转换策略的属性。
推荐阅读
- haskell - 在 Parser 中使用自定义数据类型作为标记
- php - Raspberry 4 (Buster) 上的 mysql / mariaDB 连接/权限问题;phpMyadmin 出错;MySQL Workbench 没有连接
- python - python中main中的其他模块无法识别input()
- c# - 具有变量名称、QueueTriggerAttribute 限制的 Azure Functions QueueTrigger
- html - 缩进任何不以大项目符号字符开头的环绕文本行?
- vue.js - 部署到heroku后,修改vuejs组件和laravel app的app.scss没有更新
- angular - 如何允许一个 Angular 元素的输出事件更新另一个 Angular 元素的值?
- python - 在 Kivy 的屏幕之间传递文本输入
- jupyter-notebook - 如何链接到保存为 Reveal.JS 的 Jupyter Notebook 中的幻灯片?
- postgresql - 将附加节点附加到 postgres 主服务器作为热备用