Порядок операций здесь: 1/2 = 0
(целочисленное деление усекает десятичные разряды), затем следует float64(0) = 0
, затем fmt.Println(0)
.
Короче говоря: целочисленное деление усекается до 0. Всеостальное работает нормально.
Как прокомментировал @Amadan, вы можете форсировать деление с плавающей запятой, приведя одно из целых чисел, то есть float64(1) / 2 = 0.5
.