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

时间:2014-10-27 02:26:36

标签: ios swift double nsnumberformatter nslocalizedstring

我使用NSNumberFormatter.localizedStringFromNumber(aDouble, numberStyle: .DecimalStyle)向最终用户显示号码。这很有效,除非数字在小数点后有多位数。

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

如何获取数字的本地化字符串,但是可以控制显示的位数?我希望在舍入前显示10-20位数字。

我没有看到用于创建自定义numberStyle的API,但它仅限于DecimalStyleScientificStyle等礼物。我确实需要它是一个本地化的表示,以便正确显示当前语言/区域的数字/符号。

1 个答案:

答案 0 :(得分:1)

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

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部分。