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