ta jest w jakiś sposób związane z moim pytaniem Why is ''>0 True in Python?Dlaczego jest dziesiętny ("0")> 9999.0 Prawda w python?
W Pythonie 2.6.4:
>> Decimal('0') > 9999.0
True
Z answer do mojego pierwotnego pytania rozumiem, że przy porównywaniu obiektów różnych typów w Pythonie 2.x typy są zamawiane według ich nazwy. Ale w tym przypadku:
>> type(Decimal('0')).__name__ > type(9999.0).__name__
False
Dlaczego zatem Decimal('0') > 9999.0 == True
?
AKTUALIZACJA: Zwykle pracuję na systemie Ubuntu (Linux 2.6.31-20-generiC# 57-Ubuntu SMP Pon 8 lutego 09:05:19 UTC 2010 i686 GNU/Linux, Python 2.6.4 (r264: 75706, Dec 7 2009, 18:45:15) [GCC 4.4.1] na Linux2). W systemie Windows (WinXP Professional SP3, Python 2.6.4 (r264: 75706, 3 listopada 2009, 13:23:17) [MSC v.1500 32 bit (Intel)] na win32) moje oryginalne polecenie działa inaczej:
>> Decimal('0') > 9999.0
False
Jeszcze bardziej zdziwiłem się. % - (
Nie otrzymuję takich samych wyników dla pierwszego wyciągu. Na moim pojawia się jako Fałsz. Mimo to otrzymuję taki sam wynik dla twojego drugiego stwierdzenia. Używam również Python 2.6.4. –
@Justin, które pozostawia mnie jeszcze bardziej zaintrygowany, jak potrójne sprawdzane i zwraca 'True' – parxier
przy użyciu Pythona 3.1.1, pierwsza instrukcja podaje (po zaimportowaniu dziesiętnych):' TypeError: unorderable types: Decimal()> float() ' –