我正在尝试将来自 es_US 语言环境(x,xxx.xx)的 .txt 文件中的一个数量格式化为我当前的语言环境,使用的是 es_ES(x.xxx,xx)。我希望 [NSNumberFormater numberFromString] 只会重新格式化字符串,但是我只能从这个方法中得到一个 nil 值。
从这里检查答案后,我还尝试了另一种方法,但是如果字符串有千位分隔符,则 NSDecimalnumber 不起作用,所以如果有人能告诉我我做错了什么,请......
- (void) setSaldo_sap:(NSString *)saldo_sap
{
NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];
[numFormatter setLocale:[NSLocale currentLocale]];
[numFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numFormatter setNegativeFormat:@"-¤#,##0.00"];
//saldo_sap = @" -324,234.55"
NSString * tmpString = [saldo_sap stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSNumber *num = [numFormatter numberFromString:tmpString];
NSDecimalNumber *tempNumber = [NSDecimalNumber decimalNumberWithString:tmpString];
_saldo_sap = [numFormatter stringFromNumber:tempNumber];
}