将字符串显示为带有两个小数位的数字

时间:2014-11-06 22:45:29

标签: ios nsnumberformatter

在我的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;  

    }

但我从数字输出错误。这就是我得到的,标签是具有蓝色背景的标签:

enter image description here

2 个答案:

答案 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]];