[pyar] Duda con la resta

Varela Matias matu.varela en gmail.com
Jue Jun 8 16:52:05 ART 2017


Buenísimo, muchas gracias a los tres.

Saludos

El jue., 8 jun. 2017 a las 16:40, David Arch (<daviddanielarch en gmail.com>)
escribió:

> Podes usar
>         self.assertAlmostEqual(resta(2.2, 4.3), -2.1)
>
> El 8 de junio de 2017, 16:37, Juan Carizza <juan.carizza en gmail.com>
> escribió:
>
>> 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
>>
>>
>> _______________________________________________
>> 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
>>
>
>
>
> --
> Saludos.
> David.
> _______________________________________________
> 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

-- 
Matías Varela
(260) 4290769
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170608/0eeb2dcf/attachment.html>


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