嗨,我需要帮助。我想用如下格式计算浮点数xxxxx.YYYYYYYYYYYYYY. 我知道我应该用十进制而不是浮点数 我试了很多次,搜索了很多,但我仍然有以下简单的问题:
getcontext().prec = 14
a = Decimal(str('12.737791301'))
b = Decimal(str('12.737791839'))
c = Decimal((b - a)) # substract is what I finally want here
print a, b, c
12.737791301 12.737791839 5.38E-7
我希望c显示为0.000000538
谢谢你的帮助!在
ps.normalize()不起作用
真正的解决方案是format(),在Python2.6和3.1中可用。在
format(c,"f")
将十进制转换为float repr样式的输出。这是python中新样式格式的一部分。在其他更糟糕的解决方案如下:
这可以通过一个格式字符串来完成,就像您的十进制值是浮点值一样。
print "%0.9f" % c
将生成“0.000000538”python library reference可以告诉你更多。在
为了解决需要知道小数位数正确的问题,您可以在浮点精度的限制下打印出来,条件是小数点较小:
第二行处理后面的0
您可以使用
quantize
。一些类似于编辑。在您的特定示例中,以下内容起作用:
^{pr2}$如果您想要更健壮的东西,请查看这个例子http://docs.python.org/library/decimal.html#recipes
相关问题 更多 >
编程相关推荐