Erro com entrada específica

Opa, tudo certo?
Resolvendo alguns exercícios no URI pra praticar, comecei a fazer a questão 1021 (https://www.urionlinejudge.com.br/judge/pt/problems/view/1021), porém quando envio a minha solução, da Wrong Answer (10%). Pesquisando um pouco, descobri que se eu usar o 93.55 como input, o código não dá a resposta certa, Mas não consegui encontrar o erro. Podem me ajudar?

N = float(input())


total = N

notaDeCem = 0
notaDeCinquenta = 0
notaDeVinte = 0
notaDeDez = 0
notaDeCinco = 0
notaDeDois = 0

moedaDeUm = 0
moedaDe50 = 0
moedaDe25 = 0
moedaDe10 = 0
moedaDe05 = 0
moedaDe01 = 0

while total >= 100.00:
    total = total - 100.00
    notaDeCem += 1

while total >= 50.00:
    total = total - 50.00
    notaDeCinquenta += 1

while total >= 20.00:
    total = total - 20.00
    notaDeVinte += 1

while total >= 10.00:
    total = total - 10.00
    notaDeDez += 1

while total >= 5.00:
    total = total - 5.00
    notaDeCinco += 1

while total >= 2.00:
    total = total - 2.00
    notaDeDois += 1

while total >= 1.00:
    total = total - 1.00
    moedaDeUm += 1

while total >= 0.50:
    total = total - 0.50
    moedaDe50 += 1

while total >= 0.25:
    total = total - 0.25
    moedaDe25 += 1

while total >= 0.10:
    total = total - 0.10
    moedaDe10 += 1

while total >= 0.05:
    total = total - 0.05
    moedaDe05 += 1

while total >= 0.01:
    total = total - 0.01
    moedaDe01 += 1

print("NOTAS:")
print("{} nota(s) de R$ 100.00".format(notaDeCem))
print("{} nota(s) de R$ 50.00".format(notaDeCinquenta))
print("{} nota(s) de R$ 20.00".format(notaDeVinte))
print("{} nota(s) de R$ 10.00".format(notaDeDez))
print("{} nota(s) de R$ 5.00".format(notaDeCinco))
print("{} nota(s) de R$ 2.00".format(notaDeDois))
print("MOEDAS:")
print("{} moeda(s) de R$ 1.00".format(moedaDeUm))
print("{} moeda(s) de R$ 0.50".format(moedaDe50))
print("{} moeda(s) de R$ 0.25".format(moedaDe25))
print("{} moeda(s) de R$ 0.10".format(moedaDe10))
print("{} moeda(s) de R$ 0.05".format(moedaDe05))
print("{} moeda(s) de R$ 0.01".format(moedaDe01))

Podem me ajudar a encontrar o erro?

Valeu!

Fala @caiotracera, blz?!

Então, vou logo adiantar que, seu código está certo, e isso não é bug no Python. Na verdade esse é um clássico problema de Aritmética de Ponto Flutuante, esse tipo de operação tem alguns problemas e limitações, mas que podem facilmente serem compreendidos, e também facilmente “resolvidos”, com os módulos decimal e fractions. Logo abaixo, vou deixar alguns links que te ajudarão compreender melhor este problema, é bastante interessante a explicação, da uma lida com calma, vale a pena.

Links sobre Aritmética de Ponto Flutuante:
Floating Point Arithmetic: Issues and Limitations
Video Demonstrativo - Python Tutorial: Floating Point Number Type in Python

Módulos:
decimal — Decimal fixed point and floating point arithmetic
fractions — Rational numbers

Obs.: Eu sei que o tópico já é antigo, mas espero que ajude você ou até mesmo outro membro ou visitante.

Abraços!