iam*_*kie 2 iphone xcode xcode4
好的,所以我有一个自定义数字键盘工作,并在标签(数字字段)中显示数字为0.00,现在我需要它显示$ 0.00.
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"]];
NSString *numberFieldFormat = [numberFormatter stringFromNumber:currency];
numberField.text = numberFieldFormat;
Run Code Online (Sandbox Code Playgroud)
我尝试了$%1.2f,但它崩溃了,因为它不能将$符号识别为数字.有人可以帮帮我吗?或者有更好的方法来制作带有$符号的自定义打击垫?
**编辑我正在考虑将numberField设为隐藏标签(alpha 0)并将副本(numberField2)直接放在顶部并通过stringWithFormat运行它.它工作,但我认为可能有一个更清洁的方式.
你不希望它显示$0.00.如果我在英国怎么办?那我不想让它显示出来£0.00吗?
看起来你错误地使用了NSNumberFormatter.以下是格式化货币数字的方式:
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterCurrencyStyle];
NSString *string = [f stringFromNumber:[NSNumber numberWithFloat:1234.56]];
[f release];
Run Code Online (Sandbox Code Playgroud)
无论您的语言环境如何,这都将正确格式化.它将使用正确的货币符号,正确的千位分隔符和正确的小数分隔符.尝试自己重新创建此功能是一个坏主意™.
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |