将float格式化为目标c

时间:2015-11-07 05:41:30

标签: objective-c

当p为25.011时,

[NSString stringWithFormat:@"$%.2f", n]给我25.01美元;这就是我想要的。但是,我想要的是当n为25时,它给我25美元而不是25美元。当n为25.1时,它给我25.1美元而不是25.10美元。

有办法吗?

1 个答案:

答案 0 :(得分:2)

查看NSNumberFormatter。您可以指定最大和最小分数。例如:

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
fmt.numberStyle = NSNumberFormatterDecimalStyle;
fmt.maximumFractionDigits = 2;
fmt.minimumFractionDigits = 0;
NSLog(@"12.34 = %@, 12.3 = %@, 12 = %@", [fmt stringFromNumber:@(12.34)], [fmt stringFromNumber:@(12.30)], [fmt stringFromNumber:@(12.00)]);

这导致输出:

  

12.34 = 12.34,12.3 = 12.3,12 = 12

使用该格式化程序,您的代码可以是:

double n = 25.1;
NSString *result = [NSString stringWithFormat:@"$%@", [fmt stringFromNumber:@(n)]];

结果为$25.1