Является ли литерал float или double? C++
Изучаю C++, наткнулся на такой пример о преобразовании типов:
float doSomething()
{
return 4.0; // передача значения 4.0 (тип double) из функции, которая возвращает float
}
В данном примере 4.0 разве является double? В коде я обычно встречал, что там, где требуется не int, а float, ставили .0 у числа. Например 12.0. Я считал, что эта константа будет float. Но, выходит, что каждый раз 12.0 вызывала неявное преобразование типов из double во float?
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
- У вещественных констант тип
double - С преобразованием типа разберётся компилятор и в рантайме ничего не будет
- В данном случае с тем же успехом можно было написать интовую
4 - У меня есть пример интереснее: Какого типа `1.`?