每三位数的空间

时间:2012-10-22 20:37:17

标签: objective-c ios

如何在结果字符串中每3位数字输入一个简单的逗号?

代码如下:

float convertFrom = [[_convertRates objectAtIndex:[picker selectedRowInComponent:0]]     floatValue];

float convertTo = [[_convertRates objectAtIndex:[picker selectedRowInComponent:1]] floatValue];

float input = [inputText.text floatValue];
float to = convertTo;
float from = convertFrom;

float convertValue = input;
float relative = to / from;
float result = relative * convertValue;

NSString *convertFromName = [_convertFrom objectAtIndex:[picker selectedRowInComponent:0]];
NSString *convertToName = [_convertFrom objectAtIndex:[picker selectedRowInComponent:1]];



NSString *resultString = [[NSString alloc]initWithFormat:
                          @" %.4f %@",result, convertToName];


resultLabel.text = resultString;

NSString *formelString = [[NSString alloc]initWithFormat:
                          @" %.4f %@=", convertValue, convertFromName];
formelLabel.text = formelString;

此代码会生成大量数字,显示在文本块中,这不是最实用的数据使用方式。如何在此代码中实现逗号?

例如,12345671 234 5671'234'567

1 个答案:

答案 0 :(得分:5)

使用NSNumberFormatter。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterDecimalStyle;

NSString *formattedString = [formatter stringFromNumber:someNumberValue];

其中someNumberValue是具有数字的NSNumber对象。

这将为用户选择的区域格式正确格式化数字。

如果您愿意,您可以控制小数点后的位数。有关详细信息,请参阅NSNumberFormatter的文档。