如何使用NSNumberFormatter从double中截断.000个零

时间:2010-09-15 13:58:33

标签: objective-c xcode decimal string-formatting nsnumberformatter

好的,如果我有一个双开始我如何限制或截断数字到1dp,因为我知道他们不需要被查看

double a = 1.6;

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
NSString *numberAsString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:a]];

[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setGeneratesDecimalNumbers:YES];
[numberFormatter setMaximumFractionDigits:1];
[numberFormatter setMinimumFractionDigits:1];
[numberFormatter setAlwaysShowsDecimalSeparator:YES];  

NSLog(@"a raw: %f", a); //outputs 1.600000

myLabel.text = [NSString stringWithFormat:@"%@",numberAsString];

NSLog(@"Formatted a: %@", numberAsString); //outputs 2

[numberFormatter release];

所以问题是它舍入了值并且没有留下小数位,我试图让它为myLabel输出1.6。

1 个答案:

答案 0 :(得分:1)

我不确定,但您可以尝试NSString *formatted = [NSString stringWithFormat:@"%.1f", a];,然后使用格式化为标签文字