Обсуждаем контроллеры компании Atmel.
Сб янв 18, 2020 09:09:57
Почему код float test2 = (512/1024)*10 выдает 0?
Каким образом заставить мк получать 0.xx и умножать это число?
А судя по всему мк при делении выдает 0 и умножает на него, когда необходимо 0,5 * 10
Сб янв 18, 2020 10:35:49
Запишите так
- Код:
float test2 = (512.0/1024)*10
или так
- Код:
float test2 = ((float)512/1024)*10
Все числа являются целыми, компилятор выбирает для них целочисленную арифметику.
Сб янв 18, 2020 10:43:18
512/1024=0,5
"/" по умолчанию для целых чисел и даст 0.
Сб янв 18, 2020 14:38:49
Операция деления делается последней. Всегда.
10*512/1024=5
Сб янв 18, 2020 19:45:06
ему же нужна плавающая точка, а не целочисленный результат. поэтому очередность операций не имеет значения.
Вс янв 19, 2020 03:03:36
Спасибо, ребята.
Спойлер
Хороший, дружный форум, не то что схем.нет, где один "краб" чего только стоит, у которого вечный пмс.
Вс янв 19, 2020 09:47:36
здесь тоже не всегда бывает дружелюбно. всё зависит от вопрошающего ...
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.