我的问题是我当前正在将NSNumberFormatter
与NSNumberFormatterDecimalStyle
一起使用。我之所以使用它,是因为我想用逗号将每三个数字分开,就像当我将其变成字符串时会写一个逗号一样。这很好用,但是小数位的精度很小。仅精确到千分之一。对于我的应用程序,我需要精确到小数点后12位。我可以使用%g格式说明符非常容易地做到这一点,只需将%.12g放入字符串格式即可,但是我不知道如何使用NSNumberFormatter来实现。我尝试删除格式:NSNumberFormatterDecimalStyle
,但这只是使我的数字成为整数。任何帮助,将不胜感激。
这是我当前用于格式化double: number
的代码。
NSNumber *theNumber = [NSNumber numberWithDouble:number];
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[num setNumberStyle:NSNumberFormatterDecimalStyle];
[num setGroupingSeparator:@","];
最佳答案
只需在小数点右边设置最小值或数字即可:- (void)setMinimumFractionDigits:(NSUInteger)number
例:
NSNumber *number = @123456.654321;
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setGroupingSeparator:@","];
[formatter setMinimumFractionDigits:12];
NSString *stringNumber = [formatter stringFromNumber:number];
NSLog(@"Number: '%@'", stringNumber);
NSLog输出
编号:'123,456.654321000000'