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

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

int x = 2 * (a + y);

Правильно ли отбрасывать "дробную" часть таким путём?
  • Вопрос задан
  • 9780 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы