我有一個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