我有一个 UITextField 在我的应用程序中接收来自用户的数字输入。然后,在我的 shouldChangeCharactersInRange 委托方法中,使用 NSNumberFormatter 将此文本字段中的值转换为货币格式。当我输入数字“12345678”时,该数字会正确转换为 $123456.78(数字一次输入一位,到目前为止,一切正常)。但是,当我在此之后输入另一个数字(例如 9)时,不是显示“1234567.89”,而是显示数字“1234567.88”。如果我在那之后输入另一个数字,则在此之后完全不同的数字(我在应用程序中使用数字键盘输入数字。这是我拥有的代码:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
modifiedValue = [formatter stringFromNumber:[NSNumber numberWithFloat:[modifiedValue floatValue]]];
textField.text = modifiedValue;
导致这种异常转换的行是这一行:
modifiedValue = [formatter stringFromNumber:[NSNumber numberWithFloat:[modifiedValue floatValue]]];
谁能明白这是为什么?