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

mva*_*sco 1 nsnumberformatter ios

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

    }
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

mtt*_*rsp 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]]);
Run Code Online (Sandbox Code Playgroud)