Задать вопрос

Преобразование float в int с инициализацией переменной на лету, адекватно?

int a;
float y;
a = 5;
y = 2.4;

int x = 2 * (a + y);

Правильно ли отбрасывать "дробную" часть таким путём?
  • Вопрос задан
  • 11323 просмотра
Подписаться 2 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@DollaR84
У вас происходит неявное преобразование типов.
в C явное преобразование выглядит так:
int x = 2 * (a + (int) y);
Почитать можно например тут:
https://foxford.ru/wiki/informatika/yavnoe-i-neyav...
Однако в C++ лучше использовать другие инструменты, например static_cast.
Тогда ваш пример будет таким:
int x = 2 * (a + static_cast(y));
Вот тут про static_cast:
https://ru.wikipedia.org/wiki/Static_cast
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы