Tambien puedes poner la precision en la llamada a round()

>>>round(64**(1./3),5).is_integer()
>>>True

>>>round(65**(1./3),5).is_integer()
>>>False

Saludos.


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?



2010/3/15 Pavel Daniel Lopez Castillo <[email protected] <mailto:[email protected]>>

    Exacto ese es el problema que tengo, pero se puede resolver con
    round(numero ** (1.0 / 3))

    pero para 26 por ejempo me da 3 y necesito que sea 2, me hace
    falta que si es un cubo perfecto me de la raiz exacta pero si no
    lo es me de la parte entera del flotante

    raiz cubica de 26 = 2.96249606841  parte entera = 2

    _______________________________________________
    Python-es mailing list
    [email protected] <mailto:[email protected]>
    http://mail.python.org/mailman/listinfo/python-es
    FAQ: http://python-es-faq.wikidot.com/


------------------------------------------------------------------------

_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a