gpt4 book ai didi

ios - 计算器的问题是动态回答的

转载 作者:行者123 更新时间:2023-11-29 03:12:20 25 4
gpt4 key购买 nike

我正在开发一个计算器应用程序,它可以在您键入时输出答案,而不是点击等于按钮。到目前为止,一切正常,除非您在已经计算出的数字上添加(或 -,/,*)。例如,如果我执行 10 + 15 + 9,它会给出 169,而不是正确答案 (34)。我想我知道为什么会发生这种情况,但我不太确定如何解决它。

这是我的代码:

     if (answer == NO) {

saved1 = saved1 * 10 + digit;

if ([self.screen.text isEqual: @"0"] || operationClear == YES) {

self.screen.text = number;

operationClear = NO;

}else{


self.screen.text = [NSString stringWithFormat:@"%@%@", self.screen.text, number];

}


}else{

saved2 = saved2 * 10 + digit;

if (plus == YES) {

answerr = saved1 + saved2;

//saved1 = answerr;

// saved2 = 0;

NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init];

[formatter setNumberStyle:NSNumberFormatterDecimalStyle];

self.screen.text = [formatter stringFromNumber:[NSNumber numberWithDouble:answerr]];



}
}
}

我相信问题是当你第二次点击加号时,它只是在 saved2 的末尾添加了 9。为了解决这个问题,我尝试使 saved1 等于答案,并使 saved2 等于零,但这不起作用。有任何想法吗?如果我做错了,请告诉我,我是 iOS 开发新手,希望以最有效的方式做到这一点。谢谢。

最佳答案

因此,从您的代码看来,您正在使用数学在用户按下新数字后显示数字。

例如,如果显示“1”并且用户按下 2,则执行 1 * 10 + 2 会得到“12”

也许更好的方法是处理字符串,例如,当用户输入数字时

例如,如果显示“1”并且用户按下“2”,则将“2”字符串添加到“1”字符串中:

NSString * displayString = calculatorDisplay.text; // display
NSString * userInputString = @"2";

calculatorDisplay.text = [displayString stringByAppendingString:userInputString];

然后,当你需要一个数字时,使用这个将它转换成一个数字:

- (NSNumber *)numberFromString:(NSString *)string {
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
return [f numberFromString:string];
}

我知道这会稍微改变一些,但我认为它会更加一致。它还可以让用户轻松输入小数等内容。

关于ios - 计算器的问题是动态回答的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22129663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com