То, что вы ищете, это «приведение типа». Typecasting (помещая тип, который вы знаете , который вы хотите заключить в скобки), сообщает компилятору, что вы знаете, что делаете, и к нему здорово относитесь. Старый способ, который унаследован от C, выглядит следующим образом.
float var_a = 9.99;
int var_b = (int)var_a;
Если бы вы только пытались написать
int var_b = var_a;
Вы бы получили предупреждение о том, что вы не можете неявно (автоматически) преобразовать float
в int
, поскольку вы потеряете десятичную дробь.
Это называется старым способом, поскольку C ++ предлагает превосходную альтернативу, «статическое приведение»; это обеспечивает намного более безопасный способ преобразования из одного типа в другой. Эквивалентный метод будет (и способ, которым вы должны это сделать)
float var_x = 9.99;
int var_y = static_cast<int>(var_x);
Этот метод может выглядеть немного длиннее, но он обеспечивает намного лучшую обработку в таких ситуациях, как случайный запрос «статического приведения» к типу, который не может быть преобразован. Для получения дополнительной информации о том, почему вы должны использовать статическое приведение, см. этот вопрос .