Esto tiene cierta relación con mi pregunta Why is ''>0 True in Python?¿Por qué Decimal ('0')> 9999.0 es verdadero en Python?
En Python 2.6.4:
>> Decimal('0') > 9999.0
True
Desde el answer a mi pregunta original entiendo que al comparar objetos de diferentes tipos en Python 2.x los tipos están ordenados por su nombre. Pero en este caso:
>> type(Decimal('0')).__name__ > type(9999.0).__name__
False
¿Por qué entonces Decimal('0') > 9999.0 == True
?
ACTUALIZACIÓN: suelo trabajar en Ubuntu (Linux 2.6.31-20-generiC# 57-Ubuntu SMP Lun Feb 8 09:05:19 UTC 2010 i686 GNU/Linux, Python 2.6.4 (r264: 75706, Dic 7 2009, 18:45:15) [GCC 4.4.1] en linux2). En Windows (WinXP Professional Service Pack 3, Python 2.6.4 (R264: 75706 3 Nov 2009, 13:23:17) [32 bits MSC v.1500 (Intel)] en win32) mi declaración original funciona de forma diferente:
>> Decimal('0') > 9999.0
False
Aún más desconcertado ahora. % - (
No obtengo los mismos resultados para su primera declaración. En el mío, aparece como falso. Sin embargo, obtengo el mismo resultado para su segunda declaración. También estoy usando Python 2.6.4. –
@Justin que me deja aún más perplejo ya que comprobé tres veces y devuelve 'True' – parxier
usando Python 3.1.1, la primera instrucción da (después de importar el decimal):' TypeError: tipos no ordenables: Decimal()> float() ' –