我需要为一个数字设置一个标签,这个数字可能有小数,也可能没有小数。我不希望它是5.00,只有5(使用标准代币时可能会发生这种情况)。尽管如此,如果有有效的小数,比如.56,那么它应该显示5.56;如果是.5,那么应该显示5.56。除了只使用一堆if语句之外,我如何才能只显示所需的小数(即,是否有快速修复方法,或者我需要手动执行)?
在cocoa中,格式化数值以进行显示的最佳方法是使用NSNumberFormatter。
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumSignificantDigits:2];
NSNumber *significant = [NSNumber numberWithFloat:10.56f];
NSNumber *nonSignificant = [NSNumber numberWithFloat:10.00f];
NSLog(@"sig: %@, non-sig: %@", [formatter stringFromNumber:significant], [formatter stringFromNumber:nonSignificant]);
//sig: 10.56, non-sig: 10