好的,所以我有一个带有数字字段(值为 0-9 的按钮)的应用程序,它更新了格式化为当地货币的标签。标签自动为用户放置小数点,因此格式为 0.00。现在这是一个问题,因为 iphone 将大多数其他货币(例如欧元)格式化为 0,00。
有没有办法检测区域货币格式(设置>国际>区域格式)?
然后我会相应地做出一个 if 语句。
我当前的数字键盘代码:
NSString *digit = sender.currentTitle;
numberField.text = [numberField.text stringByAppendingString:digit];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setGroupingSeparator:@""];
[numberFormatter setMaximumIntegerDigits:4];
[numberFormatter setMaximumFractionDigits:2];
[numberFormatter setMaximumFractionDigits:2];
numberField.text = [numberField.text stringByReplacingOccurrencesOfString:@"." withString:@""];
NSDecimalNumber *currency = [[NSDecimalNumber decimalNumberWithString:numberField.text] decimalNumberByDividingBy: [NSDecimalNumber decimalNumberWithString:@"100"]];
numberField.text = [numberFormatter stringFromNumber:currency];
您可以在第 11 行看到它插入小数点的位置。当我将其更改为逗号时,0,00 格式可以正常工作。
和转换:
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *string = [f stringFromNumber:[NSNumber numberWithFloat:[numberField.text floatValue]]];
numberField.text=string;