[pyar] Duda con la resta

Juan Carizza juan.carizza en gmail.com
Jue Jun 8 16:37:20 ART 2017


Cuando trabajo con flotantes hay que tener en cuenta la cantidad de
decimales y el redondeo..

In [1]: round(2.2 - 4.3, 20)
Out[1]: -2.0999999999999996

In [2]: round(2.2 - 4.3, 1)
Out[2]: -2.1



El jue., 8 jun. 2017 a las 16:34, Tomas Zulberti (<tzulberti en gmail.com>)
escribió:

> On Thu, Jun 8, 2017 at 4:28 PM, Varela Matias <matu.varela en gmail.com>
> wrote:
> > Buenas tardes a todos! el otro día explicaba test usando un ejemplo
> sencillo
> > en python (python 3.6), y uno de los test falla y no entiendo por qué.
> >
> > Tengo este modulo matematica.py con una función resta:
> >
> > def resta(a, b):
> >      return a - b
> >
> > Nada raro. El test que falla es este:
> >
> > import unittest
> > from matematica import resta
> >
> >
> > class MateTests(unittest.TestCase):
> >     def test_resta(self):
> >         self.assertEqual(resta(2, 3), -1)
> >         self.assertEqual(resta(-1, -1), 0)
> >         self.assertEqual(resta(-2, 2), -4)
> >         self.assertEqual(resta(2.2, 4.3), -2.1)  # acá da problemas
> >
> >
> > if __name__ == '__main__':
> >     unittest.main()
> >
> > La salida es:
> >
> > ======================================================================
> > FAIL: test_resta (__main__.MateTests)
> > ----------------------------------------------------------------------
> > Traceback (most recent call last):
> >   File "test_unittest.py", line 12, in test_resta
> >     self.assertEqual(resta(2.2, 4.3), -2.1)
> > AssertionError: -2.0999999999999996 != -2.1
> >
> > ----------------------------------------------------------------------
> >
> > o_0
> >
> > ¿Qué me estoy perdiendo?
> >
>
> Es un tema reconocido de aritmetica de punto flotante:
> https://docs.python.org/2/tutorial/floatingpoint.html o
> https://docs.python.org/3/tutorial/floatingpoint.html
>
>
> Saludos,
> TZ
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170608/aac96af0/attachment.html>


Más información sobre la lista de distribución pyar