我的目标是为iPhone创建一个客户计算器应用程序,我正在使用
Xcode编写我的应用程序.我的问题,我找不到解决方案,是如何格式化使用小数(带有额外的零)的数字而不切换到科学记数法
我试过了…
buttonScreen.text = [NSString stringWithFormat:@"%0.f",currentNumber];
%0.f格式化始终为舍入,因此如果用户键入“4.23”,则显示“4”
%f格式化带有6位小数的数字(输入“5”显示为“5.000000”),但我不想在数字的末尾显示额外的零.
?.4f是我在阅读中看到的另一个找到解决方案的东西,但我的问题是我不知道答案中会有多少小数,我可能需要零小数或10位小数,具体取决于数字.
以下是我想要显示的数字示例(不带逗号):大于6位的整数,超过6位的十进制数.
123,456,789; 0.123456789; 12345.6789; -123,789; -0.23456789; -12345.6789;
*这是对我之前的问题“如何格式化数字而没有科学符号或小数”的精神转发,我写得很糟糕,因为我打算写“不必要的(额外的零)”,但在重读我的帖子后,清楚地看到我无法传达在我的问题的任何一点.
解决方法
使用
NSNumberFormatter class.
首先定义格式化程序:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
然后,您可以定义格式化程序的各种属性:
formatter.numberStyle = NSNumberFormatterDecimalStyle; formatter.maximumIntigerDigits = 3; formatter.minimumFractionDigits = 3; formatter.maximumFractionDigits = 8; formatter.usesSignificantDigits = NO; formatter.usesGroupingSeparator = YES; formatter.groupingSeparator = @","; formatter.decimalSeparator = @"."; ....
您将数字格式化为如下字符串:
NSString *formattedNumber = [formatter stringFromNumber:num];
玩弄它.它很简单,但可能需要一些工作来获得你想要的外观.