У меня есть текстовое поле (только цифры) и UILabel, которые я добавляю вместе с использованием кнопки. UILabel отображает ответ, и текстовое поле гаснет при вычислении. Вычисления и упомянутая функциональность отлично работают, пока я не хочу добавлять номера более 10 миллионов. UILabel отображает ответ от -2147483648. Расчет, который я сделал, чтобы получить меня к этому результату, был 0 + 1000000000.Расчет суммы неправильный, если цифры более 10 миллионов
Я не устанавливал никаких ограничений на длину символов любого поля, поэтому не знаю, почему это происходит.
Вот код для моего расчета:
-(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, если для целых чисел) –
Вы правы. Добавлено в сообщение;) –
Использование 'double' здесь не помогло бы, потому что предположительно' dtotaler' является 'int'. – omz