Какова цель помещения типа данных в квадратные скобки перед вычислением?
Извините за вопрос новичка, но я нигде не могу найти ответ на этот вопрос, вероятно, потому, что я не уверен, что искать в этой проблеме!
Мне просто интересно, в чем причина включения типа данных в квадратные скобки перед вычислением? В приведенном ниже коде все переменные уже объявлены в верхней части программы, поэтому я не уверен, какова причина / эффект включения (float). acc_y и angle_pitch_acc были объявлены как float, а acc_total_vector был объявлен как long
angle_pitch_acc = asin((float)acc_y/acc_total_vector)* 57.296;
Спасибо!
@Elliot P, 👍0
1 ответ
Лучший ответ:
Это называется кастинг. Это временно изменяет тип данных. В данном случае он используется для преобразования целочисленного типа в тип с плавающей запятой, что означает, что весь расчет выполняется с использованием математики с плавающей запятой. Однако acc_y
предположительно уже является плавающей точкой, но, возможно, в то время, когда автор писал эту строку, этого не было. Может быть, все, как это часто бывает в программах, эволюционировало. Только автор знает.
- Как получить тип данных переменной?
- Преобразование в Unix Timestamp и обратно
- Невозможно создать массив типа const char*
- ардуино - миллисекунды ()
- Ошибка Cast from 'char*' to 'uint8_t {aka unsigned char}' loses precision [-fpermissive]
- Получение шестнадцатеричных данных с терминала
- Какой тип данных Arduino допускает десятичные дроби?
- Поскольку double и float представляют один и тот же тип данных (обычно), что предпочтительнее?
ОП написал, что "acc_y" объявлен как float. Таким образом, я думаю, что расчет уже был бы с плавающей запятой, @chrisl
@chrisl Я перестал читать на "Интересно...", @Majenko
Хорошо, спасибо, это имеет смысл., @Elliot P