[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