【发布时间】:2013-07-23 18:38:04
【问题描述】:
我正在使用以下 NSNumberFormatter 在货币值中添加逗号和符号。
self.currencyFormatter = [NSNumberFormatter new];
self.currencyFormatter.numberStyle = NSNumberFormatterCurrencyStyle;
self.currencyFormatter.currencySymbol = @"£";
self.currencyFormatter.currencyCode = @"GBP";
self.currencyFormatter.roundingMode = NSNumberFormatterRoundHalfUp;
self.currencyFormatter.maximumFractionDigits = 0;
用法:
self.principleAmountTextField.text = [self.currencyFormatter stringFromNumber:[NSNumber numberWithInteger:100000]];
这显示了预期的 100,000 英镑。现在,如果我在文本字段中再插入两个数字(文本变为 100,00096 英镑)并尝试将字符串转换为整数,我得到 0!基本上下面的行返回 0。我不知道如何处理这个问题。
NSLog(@"%d", [[self.currencyFormatter numberFromString:@"£100,00096"] integerValue]);
仅供参考,我对文本字段有自定义输入视图,它只允许数字输入文本字段。在 Did Edit End 中,即使我格式化数字并用逗号显示。
【问题讨论】:
-
£100,00096不是有效数字。£10,000,096和£10000096一样。 -
....但是当用户输入数字时我不能放逗号!是否有数字在输入时自动转换为所需格式?
-
如果用户可以输入无效值,您需要在尝试转换之前从字符串中删除任何分组字符。
标签: ios textfield nsnumberformatter