Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何获取具有自定义数字格式的数字的本地化字符串?_Ios_Swift_Double_Nsnumberformatter_Nslocalizedstring - Fatal编程技术网

Ios 如何获取具有自定义数字格式的数字的本地化字符串?

Ios 如何获取具有自定义数字格式的数字的本地化字符串?,ios,swift,double,nsnumberformatter,nslocalizedstring,Ios,Swift,Double,Nsnumberformatter,Nslocalizedstring,我正在使用NSNumberFormatter.localizedStringFromNumber(aDouble,numberStyle:.DecimalStyle)向最终用户显示数字。除非数字在小数点后有许多位数,否则这种方法很有效 例如,如果aDouble为0.123,则生成的字符串为0.123(英语)。但是如果aDouble为0.1234,则字符串为0.123 如何获得数字的本地化字符串,但控制显示的位数?我想在四舍五入之前显示10-20位数字 我没有看到用于创建自定义numberStyl

我正在使用
NSNumberFormatter.localizedStringFromNumber(aDouble,numberStyle:.DecimalStyle)
向最终用户显示数字。除非数字在小数点后有许多位数,否则这种方法很有效

例如,如果
aDouble
为0.123,则生成的字符串为0.123(英语)。但是如果
aDouble
为0.1234,则字符串为0.123

如何获得数字的本地化字符串,但控制显示的位数?我想在四舍五入之前显示10-20位数字


我没有看到用于创建自定义
numberStyle
的API,它仅限于
DecimalStyle
ScientificStyle
等显示。我确实需要它是本地化的表示形式,以便针对当前语言/区域设置正确显示数字/符号。

您可以创建
NSNumberFormatter
的实例,并手动设置其
locale
和属性:

let d = 123.456789012345678

let formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
formatter.locale = NSLocale.currentLocale()
formatter.maximumFractionDigits = 10

let formatted = formatter.stringFromNumber(d)
123.4567890123


除此之外,还有其他用于设置各种数字长度的属性。请参阅文档部分。

太美了,太棒了!