NSNumberFormatterDecimalStyle

NSNumberFormatterDecimalStyle

我的问题是我当前正在将NSNumberFormatterNSNumberFormatterDecimalStyle一起使用。我之所以使用它,是因为我想用逗号将每三个数字分开,就像当我将其变成字符串时会写一个逗号一样。这很好用,但是小数位的精度很小。仅精确到千分之一。对于我的应用程序,我需要精确到小数点后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'

10-08 07:43