【发布时间】:2014-12-09 22:47:16
【问题描述】:
我正在为 iPhone 开发一个计算器应用程序。
在显示大于 15 位的计算结果时,我在使用 NSNumberFormatter 时遇到了问题。
例如计算结果111,111,111,111,111 x 2 = 222,222,222,222,222(正确)。但是,计算结果 1,111,111,111,111,111 x 2 = 2,222,222,222,220(错误!)。
使用NSNumberFormatter可以显示多少位数有限制,或者有人能告诉我为什么计算结果显示不正确吗??
提前致谢!
示例代码:
double absResult = fabs(_result);
NSLog(@"_result = %f", _result);
//_result is the result of the calculation that will be placed onto displayLabel below
// _result = 2,222,222,222,222,222 for the calculation 1,111,111,111,111,111 x 2
NSNumberFormatter *displayString = [[NSNumberFormatter alloc]init];
//** Adds zero before decimal point **
[displayString setMinimumIntegerDigits:1];
[displayString setUsesGroupingSeparator:YES];
[displayString setGroupingSeparator:@","];
[displayString setGroupingSize:3];
[displayString setMinimumFractionDigits:2];
[displayString setMaximumFractionDigits:2];
NSString *resultString = [displayString stringFromNumber:[NSNumber numberWithDouble: _result]];
self.displayLabel.text = resultString;
【问题讨论】:
标签: ios xcode nsnumberformatter