Чувствую, что напутал что-то с переменными (long и int)

Все не надо. Достаточно того, что один (первый) будет приведен

2 лайка

да

2 лайка

осторожнее с этим! Не забывайте о приоритете операций!

Например:

999L + 1000 * 1000

результат - жопа :frowning:

3 лайка

Не будет.
2/5*10 не равно 2*10/5.

Нет.
При каждой операции приводятся к “наибольшему” типу.

чёй та

void setup() {
Serial.begin(115200);
delay(2000);
Serial.println((float)2/5*10);
Serial.println(2*10/5);

}

Сэр в курсе, что “(float)2” это не “2”, а “2.0”?
А также, что 2 и 2.0 - это разные числа?

нет конечно, “вам шашечки или ехать”?

конечно в курсе.
Только он не “сер”, а тролль

да какой жеж я троль, если кто-то не знает, что получает дробное число, а для них нужна уже переменная типа float он сам себе создал проблему

У Вас в одном предложении сразу две ошибки:

  1. Число 2/5 ни разу не дробное.
  2. Переменная типа float не нужна, нужна именно целая переменная, как следует из первых четырех строк скетча.

окстись, палочка между числами показатель дробности, если нам учитель арифметики не врал, 2 числитель, 5 знаменатель дроби

Подозреваю, что врал. Ибо нас учитель настойчиво приучал к тому, что дробь в арифметике записывается исключительно с горизонтальной дробной чертой, а не с наклонной.
Впрочем, может врать и кто-то другой, ибо специальности “учитель арифметики” я как-то не припоминаю. Есть “учитель начальных классов” и есть “учитель математики”.

Дальше.

Вы в курсе, что одна и та же запись в разных языках может обозначать совершенно различные вещи. Например, в русском языке “1,000” означает “единица”, а в английском “thousand” то есть “тысяча”.
В данном конкретном случае во-первых, форум посвящен Arduino, т.е. особенностям применения МК, а это в основном либо схемотехника, либо программирование. А во-вторых, тема однозначно посвящена программированию на языках Си/Си++.
А в этих языках 2/5 означает целое число.

1 лайк

Чувствую сейчас перейдём к 16 / 4(3 – 1)

отлично, осталось этим воспользоваться

1 лайк

Пользуйтесь, я разрешаю.

Вы знаете, как поступают с шулерами, которые передёргивают карты?

Их бьют по физическом лицу!

1 лайк

Оне в курсе, просто напрашиваются на процедуру, описанную в №39

судари, это не для вас писалось, а нашему глубоко уважаемому ТС, не всё ему на луна смотреть

Ух ты, какую я тему прозевал, оказывается…

Ну, ухватимся за хвост:

(float )2 это ни разу не 2.0. Потому, что последнее, это тип double.

Керниган и Ричи утверждают, что

(float )2 == 2.0f