使用格式列出数组中的浮点数
Listing floats from array with format
我有一个包含浮点数的 NSMutableArray
。我可以以特定格式显示一个浮点数或不带格式显示所有浮点数,但我无法弄清楚如何同时执行这两种操作。我首先将浮点数包裹在 NSNumber
中,以便可以将其添加到数组中:
NSMutableArray *array = [[NSMutableArray alloc] init];
NSNumber *num = [NSNumber numberWithFloat:5.10f];
[array addObject:num];
NSNumberFormatter
用于格式化要在 textView
中显示的数字。这是我用来执行此操作的代码:
for (NSNumber *aNumber in array) {
self.textView.text = [NSString stringWithFormat:@"%@"
[NSNumberFormatter localizedStringFromNumber:aNumber
numberStyle:NSNumberFormatterCurrencyStyle]];
}
这里的明显问题是每次循环运行时文本都被替换为数组中的数字,而不是列出所有这些。
所以,我做了更多的研究,发现 componentsJoinedByString
:
self.textView.text = [NSString stringWithFormat:@"%@", [array componentsJoinedByString:@", "]];
这很适合列出它们,但缺少格式样式:例如,它将 5.10 显示为我不想要的 5.1。我试图以某种方式将它们组合起来,但它没有用,我也尝试 stringByAppendingString
在循环中使用格式化程序,但那是一团糟,根本不起作用。
您正在替换 textView 中的文本,而不是追加..
for (NSNumber *aNumber in array) {
NSString *result = [NSNumberFormatter localizedStringFromNumber:aNumber
numberStyle:NSNumberFormatterCurrencyStyle];
if (aNumber == array.firstObject && !self.textView.text.length) {
self.textView.text = result;
}
else {
self.textView.text = [NSString stringWithFormat:@"%@, %@", self.textView.text, result];
}
}
我有一个包含浮点数的 NSMutableArray
。我可以以特定格式显示一个浮点数或不带格式显示所有浮点数,但我无法弄清楚如何同时执行这两种操作。我首先将浮点数包裹在 NSNumber
中,以便可以将其添加到数组中:
NSMutableArray *array = [[NSMutableArray alloc] init];
NSNumber *num = [NSNumber numberWithFloat:5.10f];
[array addObject:num];
NSNumberFormatter
用于格式化要在 textView
中显示的数字。这是我用来执行此操作的代码:
for (NSNumber *aNumber in array) {
self.textView.text = [NSString stringWithFormat:@"%@"
[NSNumberFormatter localizedStringFromNumber:aNumber
numberStyle:NSNumberFormatterCurrencyStyle]];
}
这里的明显问题是每次循环运行时文本都被替换为数组中的数字,而不是列出所有这些。
所以,我做了更多的研究,发现 componentsJoinedByString
:
self.textView.text = [NSString stringWithFormat:@"%@", [array componentsJoinedByString:@", "]];
这很适合列出它们,但缺少格式样式:例如,它将 5.10 显示为我不想要的 5.1。我试图以某种方式将它们组合起来,但它没有用,我也尝试 stringByAppendingString
在循环中使用格式化程序,但那是一团糟,根本不起作用。
您正在替换 textView 中的文本,而不是追加..
for (NSNumber *aNumber in array) {
NSString *result = [NSNumberFormatter localizedStringFromNumber:aNumber
numberStyle:NSNumberFormatterCurrencyStyle];
if (aNumber == array.firstObject && !self.textView.text.length) {
self.textView.text = result;
}
else {
self.textView.text = [NSString stringWithFormat:@"%@, %@", self.textView.text, result];
}
}