Мне любопытно, почему плавающие литералы должны быть объявлены так:
float f = 0.1f;
Вместо
float f = 0.1;
Почему тип по умолчанию является двойным, почему компилятор не может сделать вывод о том, что это float, который смотрит в левую сторону задания? Google только объясняет, что такое значения по умолчанию, а не почему они так.