Ios NSNumberFormatterCurrencyStyle让我发疯

Ios NSNumberFormatterCurrencyStyle让我发疯,ios,objective-c,Ios,Objective C,我正试图让一个货币计算器工作,但我无意中遇到了一个我不知道如何解决的问题 问题是,当我通常在文本字段中键入文本时,我显然可以在100.20以上键入文本,当我尝试使用按钮执行此操作时,问题就会出现 整数可以很好地工作,但只要我点击点按钮,它就会把点放在100.20后面,所以我的结果是100.20。不管我在它后面点击什么 如果我不使用NSNumberFormatter,它也可以正常工作 以下是代码片段: -(IBAction)buttonDigitPressed:(id)sender { m

我正试图让一个货币计算器工作,但我无意中遇到了一个我不知道如何解决的问题

问题是,当我通常在文本字段中键入文本时,我显然可以在100.20以上键入文本,当我尝试使用按钮执行此操作时,问题就会出现

整数可以很好地工作,但只要我点击点按钮,它就会把点放在100.20后面,所以我的结果是100.20。不管我在它后面点击什么

如果我不使用NSNumberFormatter,它也可以正常工作

以下是代码片段:

-(IBAction)buttonDigitPressed:(id)sender
{
    mainNumber = 100.20;
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
    mainField.stringValue = [numberFormatter stringFromNumber:[NSNumber numberWithFloat: mainNumber]];
}

if(!userInTheMiddleOfEnteringDecimal)
{
    userInTheMiddleOfEnteringDecimal = YES;
    mainField.stringValue= [mainField.stringValue stringByAppendingString:@"."];
}

if语句是什么方法?您在没有任何上下文的情况下粘贴了它。-iBactionButtonToPressed:idsender{if!UserInMiddleOfEnteringDecimal{UserInMiddleOfEnteringDecimal=YES;mainField.stringValue=[mainField.stringValue stringByAppendingString:@.];}