Является ли литерал 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
  1. У вещественных констант тип double
  2. С преобразованием типа разберётся компилятор и в рантайме ничего не будет
  3. В данном случае с тем же успехом можно было написать интовую 4
  4. У меня есть пример интереснее: Какого типа `1.`?
→ Ссылка