Olá, Marcelo, como vai?
A lógica do uso do if está correta e o uso do float para converter os valores digitados foi uma boa escolha.
Um pequeno ponto que pode ser ajustado é a variável sobra. No momento, ela representa o quanto foi ultrapassado, mas o nome pode causar confusão, já que “sobra” normalmente indica o que resta. Uma alternativa seria nomeá-la como excedente, o que deixaria o código mais claro.
Parabéns pelo exercício e por compartilhar seu código. Continue praticando e participando aqui no fórum, estamos à disposição para ajudar sempre que precisar.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!