我刚刚开始使用Python 2.7,我正在尝试构建一个简单的信用支付计算器作为测试。从我能够找到的,十进制函数应该强制程序计算到特定的小数位数。从文档页面:
>>> from decimal import *
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
>>> getcontext().prec = 28
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')
所以我的理解是,如果我键入以下内容:
from decimal import *
getcontext().prec=2
total =5
print Decimal(total)
我应该得到以下
5.00
但是,它会一直打印5.如果我输入Decimal (5)
或Decimal (total)
,我会得到输出Decimal ('5')
。谁能告诉我我做错了什么?
答案 0 :(得分:3)
您设置的精度是计算的数学精度。它与打印的小数位数无关。默认情况下,Decimal
实例将打印自身的最短文本表示。否则,使用Python字符串插值(%
运算符)或format()
字符串方法。
答案 1 :(得分:2)
为什么你不做格式化字符串?
>>> print "{0:0.2f}".format(5)
5.00
抱歉,我对小数据包一无所知,所以我真的无法帮助你...我从来没有真正理解需要,或十进制包的利基
http://www.shocksolution.com/2011/11/python-string-format-examples/