如何将十进制数(double)格式化为具有一定精度且基于默认Locale的字符串?

时间:2015-03-10 07:45:25

标签: swift

到目前为止,我将我的双打格式化为这样的字符串:

String(format:"%0.4f", rate)

问题:在法国,小数点分隔符总是.,例如我们使用,

然后我使用NSNumberFormatternumberStyle = .DecimalStyle,但我不能像以前那样选择4位数的精度。

我的解决方案是什么?

由于

1 个答案:

答案 0 :(得分:8)

使用NSNumberFormatter并设置最小值和最大值 要使用小数位

let fmt = NSNumberFormatter()
fmt.maximumFractionDigits = 4
fmt.minimumFractionDigits = 4
let output = fmt.stringFromNumber(123.123456789)!
println(output) // 123,1235 (for the German locale)

更新 Swift 3 (及更高版本):

let fmt = NumberFormatter()
fmt.maximumFractionDigits = 4
fmt.minimumFractionDigits = 4
let output = fmt.string(from: 123.123456789)!
print(output) // 123,1235 (for the German locale)