Получение части от числа
- Войдите на сайт для отправки комментариев
Вс, 01/05/2016 - 12:16
Товарищи, помогите, пожалуйста.
Ниже код, с помощью которого хочу получить часть от целого, значение которой кладётся в переменную _tm, но по непонятным мне причинам, в _tm всегда уходит 0. Как с этим справиться?
int time = 90; byte cycle = 1; void Cycle(){ int tm = time; int _tm = 0; while (cycle <= 3){ switch(cycle){ case 1: Serial.println(tm); _tm = round(tm / 100 * 20); Serial.println(_tm); cycle++; _tm = 0; delay(10000); break; case 2: Serial.println(tm); _tm = round(tm / 100 * 50); Serial.println(_tm); cycle++; _tm = 0; delay(10000); break; case 3: Serial.println(tm); _tm = round(tm / 100 * 30); Serial.println(_tm); cycle++; break; } } cycle = 1; } void setup() { Serial.begin(9600); } void loop() { Cycle(); }
tm - целое. tm равно сначала 90. tm / 100 = 0; Чтобы получить что-то нужно double(tm)/100.
Возможно можно обойтись без float, но это надо знать смысл такого преобразования.
Спасибо!
Все заработало
Только не забывайте следить, чтобы не было переполнения при умножении.