Python - 除法结果中的有效数字位数
我是新手,下面是我写的代码:
myADC = 128
maxVoltage = 5.0
maxADC = 255.0
VoltsPerADC = maxVoltage/maxADC
myVolts = myADC * VoltsPerADC
print "myADC = {0: >3}".format(myADC)
print "VoltsPerADC = {0: >7}".format(VoltsPerADC)
print VoltsPerADC
print "myVolts = {0: >7}".format(myVolts)
print myVolts
运行后输出了以下内容:
myADC = 128
VoltsPerADC = 0.0196078
0.0196078431373
myVolts = 2.5098
2.50980392157
我一直在寻找关于默认情况下如何确定有效数字位数的解释,但找不到让我明白的说法。这个链接 链接文本 提到默认情况下“print”语句会打印出10位有效数字,但在我的结果中似乎并不是这样。
那么,有效数字位数/精度是如何确定的呢?
能不能帮我解释一下这个问题。
提前感谢你的时间和耐心。
2 个回答
6
精度是由硬件决定的。Python在处理浮点数时,实际上使用的是硬件的浮点数(实际上是双精度浮点数)。具体的影响可以在这个教程中查看:http://docs.python.org/tutorial/floatingpoint.html
如果你想对精度和四舍五入有更多的控制,可以考虑使用decimal模块。