【发布时间】:2015-02-22 15:17:13
【问题描述】:
我刚刚学习了 Python 中的 Decimal 类,在修改十进制数的精度时遇到了一些问题。代码:
from decimal import *
def main() :
getcontext().prec = 50
print Decimal(748327402479023).sqrt()
if __name__ == '__main__' :
main()
输出:
27355573.51764029457632865944595074348085555311409538
1.414213562373095048801688724209698078569671875376948
不是显示 50 位小数,而是总共显示 50 位。有没有办法解决这个问题?
编辑:
我正在解决一个需要高浮点精度的问题。这就是为什么我必须使用python。现在,如果问题的答案是例如 0.55,我应该打印 0.55,后跟 48 个零...
【问题讨论】:
-
打印零使用字符串格式:
print "{:.50f}".format(d)
标签: python floating-point decimal floating-point-precision floating