NSNumberFormatter舍入错误?

时间:2014-12-09 18:50:04

标签: ios swift nsnumberformatter

我正在使用NSNumberFormatter格式化我的应用中的数字。

我刚刚发现了一个问题,涉及两个添加的数字,然后用数字格式器格式化它们。

NSNumberFormatter的配置如下

    var formatter = NSNumberFormatter();
    formatter.positiveFormat = "#,###,##0.00 ¤";
    formatter.formatterBehavior = NSNumberFormatterBehavior.Behavior10_4
    formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle

    formatter.maximumFractionDigits = 2;
    formatter.minimumFractionDigits = 2;

    formatter.locale = NSLocale.currentLocale();

然后我有以下号码

var number1: Float = 0.1;
println(formatter.stringFromNumber(number1)); // output: "0.10 €"

这个号码

var number2: Float = 500000;
println(formatter.stringFromNumber(number2)); // output: "500,000.00 €"

两个输出都是正确的。

现在我这样做:

var combined:Float = number1 + number2;
println(formatter.stringFromNumber(combined)); // output: "500,000.09 €"

为什么结果是500,000.09而不是500,000.10?

0 个答案:

没有答案