2013-09-16 33 views

回答

6

使用字符串格式化:

>>> from decimal import Decimal 
>>> num = Decimal('1.0') 
>>> format(num, '.2f') 
'1.00' 

format() function適用字符串格式化到值。 Decimal()對象可以像浮點值一樣進行格式化。

您也可以用它來插值格式化的十進制值是一個較大的字符串:

>>> 'Value of num: {:.2f}'.format(num) 
'Value of num: 1.00' 

format string syntax documentation

除非你確切地知道你在做什麼,否則通過量化來擴展有效數字的數量是不可行的。量化是會計軟件包的祕密,通常旨在將結果舍入到而不是有效數字。

+0

我我不知道我在閱讀文檔後是否能夠理解'quantize()'。這只是用來設置精度? –

+0

不,它用於結果輪次以匹配另一個值的指數,我認爲主要用於會計。 –

+0

我認爲這會變成對'__format__'的調用? –

1

量化用於設置實際在內部保存的值的位數,然後將其轉換爲字符串。正如Martijn指出的,這通常是通過舍入來完成減少的位數,但它的工作原理與其他方式一樣。通過將目標指定爲十進制數而不是多個位置,可以使兩個值匹配,而不必知道具體位置。

如果您使用十進制值,而不是直接嘗試計算它看起來有點不太深奧:

num.quantize(Decimal('0.01')) 

您可以設置一些常量隱藏的複雜性:

places = [Decimal('0.1') ** n for n in range(16)] 

num.quantize(places[2]) 
相關問題