1

the following code doesn't work as intended:

//[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
formatter.maximumFractionDigits = 2;
formatter.minimumFractionDigits = 2;
formatter.decimalSeparator = @",";
formatter.perMillSymbol = @".";
NSString *resultText = [formatter stringFromNumber:[NSNumber numberWithFloat:1234.10]];

The result string is then 1234,10, but the perMillSymbol is ignored. When I uncomment the setNumberStyle call, the result is 1,234,10 - ignoring my set perMillSymbol.

What's wrong here?

4

1 回答 1

3

如果您尝试将数字格式化为1.234,10,请尝试以下操作:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
formatter.maximumFractionDigits = 2;
formatter.minimumFractionDigits = 2;
formatter.decimalSeparator = @",";
formatter.groupingSeparator = @".";
NSString *resultText = [formatter stringFromNumber:[NSNumber numberWithFloat:1234.10]];

每磨机符号用于表示十分之一的百分比 (0.001),与十进制格式的数字无关。

于 2013-08-20T10:36:37.707 回答