2010-01-06 11 views
3

我不是說有什麼技術差,而是什麼是更快/更合乎邏輯或Python化等方式做到這一點:quantize()和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

嗯......唯一重要的是技術上的差異,因爲他們做了完全不同的事情。 – 2010-01-06 19:56:44

回答

7

Decimal.quantize返回一個新的Decimal具有不同的值。

''.format()格式化字符串。

在這種特殊情況下,打印結果會得到相同的輸出。除此之外,他們完全不同的操作返回完全不同的類型。

+0

哦,所以5.00是一個不同於5的值? – orokusaki 2010-01-06 21:04:25

+0

是的,他們非常不同。你還記得物理嗎?具有三位有效數字(+/- 0.005)的值5與具有單一有效數字(+/- 0.5)的值5不同。 – 2010-03-19 14:09:29