我正在开发一款需要用户输入金额的iOS应用。它需要允许他们输入美元和美分,最大值为$ 9999.99
我希望它能像这样工作: 有一个文本字段显示:“$ 0.00” 要键入$ 5.25,输入将随每次按键而改变。 所以它看起来像这样: 按下'5',显示:0.05美元 按下'2',显示:$ 0.52 按下'5',显示:$ 5.25
我试图以不同的方式完成这项工作,但都提出了问题。 使用NSNumberformatter无法正常工作。如果用户按下退格键,使用链接列表或数组将无法工作,我真的不想实现堆栈,因为我担心它会耗费太多时间。请告知我应该如何解决这个问题。感谢
答案 0 :(得分:1)
这只是一个显示如何操作的指示性示例。您应该研究此代码并重新适应您的情况。试试吧:
@autoreleasepool
{
// Here I create the formatter and I set the format. You do this faster with setFormat: .
NSNumberFormatter* formatter=[[NSNumberFormatter alloc]init];
formatter.numberStyle= NSNumberFormatterCurrencyStyle;
formatter.maximumIntegerDigits=6;
formatter.maximumFractionDigits=2;
formatter.currencySymbol= @"$";
formatter.currencyDecimalSeparator= @".";
formatter.currencyGroupingSeparator= @",";
formatter.positivePrefix=@"";
NSArray* numbers= @[ @1 ,@2 ,@3 ,@4, @5, @6, @7, @8 ];
// These are the inserted numbers, you should change the code in a way that
// every number is taken in input from the text field.
float number=0.0f;
for(NSUInteger i=0;i<8;i++)
{
// It just simulates what happens if the user types the numbers in the array.
number= [numbers[i] floatValue] * 1.0e-2 + number*10;
NSLog(@"%@",[formatter stringFromNumber: @(number)]);
}
}
答案 1 :(得分:0)
NSString* formattedAmount = [NSString stringWithFormat:@"$%01d.%02d",dollars,cents];