десятичное сравнение python
>>> from decimal import Decimal
>>> Decimal('1.0') > 2.0
True
Я ожидал, что он правильно преобразует 2.0, но после прочтения через PEP 327. Я понимаю, что есть некоторая причина для неистинного преобразования float в Decimal, но в этом случае он не должен поднимать TypeError, как в этом случае
>>> Decimal('1.0') + 2.0
Traceback (most recent call last):
File "<string>", line 1, in <string>
TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'
так и весь другой оператор /-%//etc
поэтому мои вопросы
- Это правильное поведение? (не поднимать исключение в cmp)
- Что, если я получу свой собственный класс и правый поплавковый конвертер в принципе Десятичный (repr (float_value)), являются есть ли какие-либо оговорки? мой прецедент включает только сравнение цен
Сведения о системе: Python 2.5.2 на Ubuntu 8.04.1