Проблемы с умножением на 10000
- Войдите на сайт для отправки комментариев
Сб, 19/11/2016 - 11:02
Всем добрый.
Казалось бы простейший скетч
void setup() {
Serial.begin(57600);
}
void loop() {
Serial.println(7*10000);
delay(1000);
}
По идее должен написать 70000.
А пишет 4464.
При чем именно при умножении чисел от 4 до 9 на 10000 выдает неверный результат, даже отрицательный( например 5*10000=-15536. Умножение на 1000 или 100000 вопросов не вызывает. Даже если написать 7*100*100 тоже выдает 4464.
Перепробовал разные компьютеры, разные версии arduino ide, разные платы uno и nano - результат тот же.
Поэкспериментировал с 20000,30000 - тоже самое. На 40000 дал верный ответ.
Вообщем какой то бред.
Пока вышел из ситуации так:
x=7*100;
x=x*100;
Кто что думает по этому поводу?
Было уже, добавь UL
Serial.println(7UL*10000);
Я бы написал так: Serial.println( (uint32_t)7*10000);
Спасибо за оперативность
попробую
попробую
Так чого його пробувати, сало - воно сало і є!