0

La suma simple de números con 4 decimales no se hace correctamente. Por ejemplo, 0,2222 + 0,6666 = 0,88879999999999999. El código sería el siguiente:

fname = input("Enter file name: ")
fh = open(fname)

contador = 0
ncfs = 0
for line in fh:
    if not line.startswith("X-DSPAM-Confidence:"):
        continue
    contador = contador + 1

    sc = line.find(":")
    nc = line[sc+1:]
    ncse = nc.strip()
    ncf = float(ncse)
    ncfs = ncfs + ncf

media = ncfs/ contador
print("Average spam confidence:", media)

Para ver donde se produce el error, no haría falta más que imprimir las variables: ncf y ncfs.

Mi objetivo no es lograr un resultado final, si no entender por que sucede esto así. Les agradezco la ayuda o explicación de por qué sucede esto. Un saludo.

LuisC
  • 1
  • 7
    ¿Responde esto a tu pregunta? [¿Por qué mis programas no pueden hacer cálculos aritméticos correctamente?](https://es.stackoverflow.com/questions/197/por-qu%c3%a9-mis-programas-no-pueden-hacer-c%c3%a1lculos-aritm%c3%a9ticos-correctamente) – padaleiana Aug 14 '20 at 19:55
  • ¿Dónde está el error entonces? ¿Qué resultado te da? ¿Cual debería dar? – Candid Moe Aug 14 '20 at 20:01
  • ***Les agradezco la ayuda o explicación de por qué sucede esto*** Esa explicación está en esta otra pregunta: [¿Por qué mis programas no pueden hacer cálculos aritméticos correctamente?](https://es.stackoverflow.com/questions/197/por-qu%c3%a9-mis-programas-no-pueden-hacer-c%c3%a1lculos-aritm%c3%a9ticos-correctamente). Tu pregunta terminará cerrada como *duplicada*. Saludos – Mauricio Contreras Aug 14 '20 at 22:15

0 Answers0