Правильно так: При преобразовании double в float, значение double округляется до ближайшего значения float.Если значение double слишком мало или слишком велико для конечного типа, результатом является нуль или бесконечность. https://msdn.microsoft.com/ru-ru/library/yht2cx7b.aspx