在我的iOS应用中,我从远程服务器接收JSON数据。其中一个字段值可以是一个双数,如24.87,或一个int数,如24。 现在我想在视图中显示数字,作为标签文本,但我想总是得到一个2位小数,例如如果远程值是24,我想显示24.00 ......
我使用以下代码来执行此操作:
if ([tarifa_comanda isEqualToString:@"T1"]){
cell.tarifa_label.text = @"T1";
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:[[categorias objectAtIndex:indexPath.row] objectForKey:@"precio1_plato"]];
cell.precio_plato_label.text = myNumber;
}
但我从数字输出错误。这就是我得到的,标签是具有蓝色背景的标签:
答案 0 :(得分:5)
您可以通过设置其maximumFractionDigits和minimumFractionDigits属性来设置希望格式化程序显示的最小和最小小数位数。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:2];
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:25.342]]);
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:25.3]]);
NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:25.0]]);
答案 1 :(得分:1)
替换你的" myNumber"同 [NSString stringWithFormat:@"%。2f",[myNumber doubleValue]];