我有一个textfield(仅数字)和一个UILabel,我正在使用一个按钮一起添加。 UILabel显示答案,并且Textfield在计算时变为空白。提到的计算和功能,工作正常,直到我开始想要添加超过1000万的数字。 UILabel显示-2147483648的答案。我为了得到这个结果而做的计算是0 + 1000000000.当数字超过一千万时,计算总和不正确
我没有对任何字段的字符长度设置任何限制,所以不确定为什么会发生这种情况。
这里是我计算的代码:
-(IBAction)addtotal2;{
float x = ([numberTextField.text floatValue]);
float y = ([dtotal.text floatValue]);
dtotaler = x + y;
dtotal.text = [NSString stringWithFormat:@"%d",dtotaler];
numberTextField.text = @"";
NSUserDefaults *userDefaults=[NSUserDefaults standardUserDefaults];
[userDefaults setObject:[NSString stringWithFormat:@"%i",dtotaler] forKey:@"saveDtotal"];
[userDefaults synchronize];
任何帮助将不胜感激。谢谢。
更可能是一个整数溢出:-)(-2147483648是-2^31,如果是整数则为%d格式) – 2013-04-07 17:57:38
你说得对。添加到帖子;) – 2013-04-07 18:00:13
使用'double'在这里没有帮助,因为大概'dtotaler'是一个'int'。 – omz 2013-04-07 18:03:03