Q: Precisão de float64 Por que o Go ao realizar o cálculo:
(1 * 0.09) + 0.36

retorna um float64 no seguinte formato 0.44999999999999996?
Estou tentando realizar comparações com testes e o cálculo deveria ser 0.45 porque este comportamento e como faço para "arredondar" esse número?

A: O arredondamento se dá com a função math.Round(). Porém nem tente usá-la para resolver o problema que tem aí.
O que deseja é exatidão e não precisão. Tipos de ponto flutuante binários não possuem exatidão, eles servem para cálculos aproximados apenas. Para valores monetários ou outros tipos de valores que precisam de exatidão o correto é usar o tipo Decimal. As pessoas ficam tentadas porque com arredondamento parece resolver o problemas, mas ele fica ali pronto para lhe causar problemas.
Para saber mais leia Qual a forma correta de usar os tipos float, double e decimal?.
E se ficou curioso, sim, a maioria dos programadores usam errado e trabalham com valores equivocados nos seus softwares.
