1

好了,所以如果我有一个双重开始与我怎么限制它或截断位数1DP,因为我知道不是在需要的时候来看待如何截断从双.000零与NSNumberFormatter

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。

+0

http://stackoverflow.com/questions/7469614/remove-more-than-2-trailing-zero/ 7470191#7470191 – 2011-09-19 11:32:43

回答

1

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

+0

是的,这就是我需要的 - 谢谢 – Tris 2010-09-15 14:14:42