我使用NSNumberFormatter.localizedStringFromNumber(aDouble, numberStyle: .DecimalStyle)
向最终用户显示号码。这很有效,除非数字在小数点后有多位数。
例如,如果aDouble
为0.123,则生成的字符串为0.123(英文)。但如果aDouble
为0.1234,则字符串为0.123。
如何获取数字的本地化字符串,但是可以控制显示的位数?我希望在舍入前显示10-20位数字。
我没有看到用于创建自定义numberStyle
的API,但它仅限于DecimalStyle
和ScientificStyle
等礼物。我确实需要它是一个本地化的表示,以便正确显示当前语言/区域的数字/符号。
答案 0 :(得分:1)
您可以创建NSNumberFormatter
的实例并手动设置其locale
和maximumFractionDigits
属性:
let d = 123.456789012345678
let formatter = NSNumberFormatter()
formatter.numberStyle = .DecimalStyle
formatter.locale = NSLocale.currentLocale()
formatter.maximumFractionDigits = 10
let formatted = formatter.stringFromNumber(d)
123.4567890123
除了那个之外,还有其他属性可用于设置各种数字长度。请参阅文档的Managing Input and Output Attributes部分。