我用下面的代码格式化字符串的数字格式化NSDecimalNumber当松动分数零:加入千个点与NSNumberFormatter
NSDecimalNumber *decimalNumber = [NSDecimalNumber decimalNumberWithString:@"0.000"];
NSLog(@"decimalNumber = %@",decimalNumber);
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setGroupingSeparator:@"."];
[numberFormatter setGroupingSize:3];
[numberFormatter setUsesGroupingSeparator:YES];
[numberFormatter setDecimalSeparator:@","];
[numberFormatter setMaximumFractionDigits:9];
NSString *finalString = [numberFormatter stringFromNumber:decimalNumber];
NSLog(@"finalString = %@",finalString);
如果我想格式化@“0.000”字符串(这不是必须是3个零,可以有更少或更多),我有以下的日志输出:
decimalNumber = 0
finalString = 0
,但我想要的是保持分数为零,即在这种情况下,我的字符串必须保持不变。我看到这些零点在创建NSDecimalNumber
时丢失了,我需要另一种方法。可以做什么?
和'[NumberFormatter类setNumberStyle:NSNumberFormatterDecimalStyle]' – Desdenova
当有后点正好三个零它是有用的,只有在情况下,但它只是一个例子。当我举例时,它不起作用:@“0.0000” –
是的,“3”只是一个例子。你可以用一个不同的数字来替换它,或者用一个变量替换它,如下所示:'[numberFormatter setMinimumFractionDigits:significantDigitsAfterDecimalPoint];'但格式化程序不能告诉你可能需要多少个零,所以你需要跟踪并告诉它。 – Caleb