新手在这里。我有以下代码:
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
我一直在寻找有关如何确定有效位数的说明,但是找不到对我有意义的解释。此链接link text表示默认情况下,“print”语句将数字打印到10位有效数字,但在我的结果中似乎并非如此。
如何确定有效位数/精度数?
有人可以为我阐明这一点。
提前感谢您的时间和耐心。
答案 0 :(得分:6)
精度由硬件决定。 Python使用硬件浮点数(实际上是双精度数)用于浮点数。教程中讨论了这些含义:http://docs.python.org/tutorial/floatingpoint.html
如果您想要更好地控制精度和舍入,则应考虑使用decimal模块。
答案 1 :(得分:0)
通常,如果文档不在python.org,则它不具有权威性。如果您查看print,它会告诉您浮点数首先转换为字符串,而float会告诉您(Thomas noted)机器本机double
类型是如何存储浮点数,语言不保证有效数字。