我有一个包含几个字符串的NSArray:“291839.0930820”
我想在数组中格式化这些值,以便它们显示在UITableView的detailTextLabel中,只有2位小数:“291,839.09”
我该如何做到这一点?
答案 0 :(得分:2)
如果您的数组具有浮点值
,您可以尝试这样的方法cell.detailTextLabel.text=[NSString stringWithFormat:@"%.02f", [[array objectAtIndex:index]floatValue]];
答案 1 :(得分:2)
要正确设置数字格式,以便为给定用户的域正确显示数字,请使用NSNumberFormatter
。你永远不应该使用v stringWithFormat:
来达到这个目的。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]:
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
NSNumber *val = array[indexPath.row];
NSString *text = [formatter stringFromNumber:val];
<强>更新强>:
我从Juan那里感觉到数组实际上并不包含数字的NSNumber
个对象,但它实际上包含数字的NSString
表示。如果是这种情况,那么我的答案中的一行需要更改。变化:
NSNumber *val = array[indexPath.row];
为:
NSNumber *val = @([array[indexPath.row] doubleValue]);
这将从数组中获取NSString
,然后将字符串的值作为double
获取,最后将double
包装在NSNumber
中。
答案 2 :(得分:0)
假设您的值为double value = 291839.0930820;
你可以像这样构建一个字符串
NSString *formattedValue = [NSString stringWithFormat:@"%0.2f",value];
将此formattedValue指定给您的textfield / label。
cell.textLabel.text = formattedValue;