Olá, João, como vai?
O código apresenta uma estrutura avançada com o uso de funções e recursividade para repetir o processo, o que demonstra uma ótima aplicação de lógica. Houve apenas uma pequena inversão na sintaxe de formatação dentro da primeira condicional if, onde o f e o número de casas decimais foram trocados. Além disso, notei que não há uma definição para encerrar o programa, o que pode causar um erro de limite de recursão caso o código seja executado muitas vezes seguidas pela função voltar.
Ficou muito bom o seu exercício e agradeço por ter compartilhado sua solução. Continue praticando e postando seus avanços. O fórum está à disposição para qualquer dúvida.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!