[pyar] Duda con la resta

David Arch daviddanielarch en gmail.com
Jue Jun 8 16:40:43 ART 2017


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.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170608/c6457c09/attachment-0001.html>


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