2010-01-06 1 views
3

Я не имею в виду то, что техническая разница, а то, что это быстрее/более логичным или Pythonic и т.д. способ сделать это:В чем разница между квантованием() и str.format()?

def __quantized_price(self): 
     TWOPLACES = Decimal(10) ** -2 
     return self.price.quantize(TWOPLACES) 

или

def __formatted_price(self): 
     TWOPLACES = Decimal(10) ** -2 
     return '{0:.2f}'.format(self.price) 

Они, кажется, точно так же, так что мне просто интересно, почему они создали квантование, когда

+0

Ummm ... Единственное, что имеет значение, это техническое различие, поскольку они делают совершенно разные вещи. –

ответ

7

Decimal.quantize возвращает новый Decimal, который имеет другое значение.

''.format() Форматирует строку.

В этом конкретном случае печать результата дает тот же результат. Помимо этого, они представляют собой совершенно разные операции, возвращающие совершенно разные типы.

+0

О, так что 5,00 - это другое значение, чем 5? – orokusaki

+0

Да, они очень разные. Вы помните физику? Значение 5 с тремя значащими цифрами (+/- 0,005) не совпадает с значением 5 с одной значащей цифрой (+/- 0,5). –

 Смежные вопросы

  • Нет связанных вопросов^_^