El 15 de marzo de 2010 16:55, Kiko <[email protected]> escribió:
> El 15 de marzo de 2010 16:20, Daniel Garcia <[email protected]> escribió: > >> El lun, 15-03-2010 a las 16:18 +0100, Daniel Garcia escribió: >> > El lun, 15-03-2010 a las 16:00 +0100, marmolro escribió: >> > > Para estos casos yo suelo sustituir el is_integer() por: >> > > >> > > >> > > >>> round(64**(1./3),0) - 64**(1./3) < 10**-15 >> > > True >> > > >> > > >> > > El valor de la aproximación ya lo fijas en función de la precisión que >> > > quieres. No lo conozco en detalle, pero supongo que se podría dar el >> > > caso de "falsos positivos".... ¿alguien conoce una técnica mejor? >> > > >> > > >> > >> > Una forma podría ser: >> > >> > (x**(1./3))**3 == x >> >> Esto no vale para nada, quiero decir, sólo vale para saber que estás >> teniendo un fallo de precisión. Me he liado entre unas cosas y otras. >> >> >> _______________________________________________ >> Python-es mailing list >> [email protected] >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > Yo, si hago: > > int(nro**(1./3)) me da siempre la parte entera del cubo del número, sea un > cubo perfecto o no. > > > _______________________________________________ > Python-es mailing list > [email protected] > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > Lo primero que habría que hacer es definir un poco más el problema. Se trata de números enteros o de números reales. Saludos José Luis Torre
_______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
