Разве не должно быть так?!

(int)( (0.1 + 0.5 )*10 )

Действие 1: складываем 0.1 + 0.5 получаем 0.6 ("по дефолту" имеем тип double);
Действие 2: умножаем на 10, получаем 6.0 (тип все еще double)
Действие 3: "кастим" (преобразовываем) в тип int, получается 6 (а не 6.0).


Никакого float'а тут нет. Если хотите литерал для float, то используйте суффикс f (можно заглавную): 6f или 6.0f

P.S. Поздно посмотрел на дату темы. Может кому еще пригодится...