新手在这里。我有以下代码: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
我一直在寻找的是如何的显著位数,默认情况下确定的解释,但有麻烦定位的对我有意义的解释。此链接link text表明,默认情况下,“print”语句将数字打印为10位有效数字,但在我的结果中似乎不是这种情况。
如何确定有效位数/精度?
有人可以为我阐明这一点。
在此先感谢您的时间和耐心。
Ahhh ...所以,因为print将float转换为字符串,并且根据Thomas提供的教程链接,str()“Python的内置str()函数只产生12个有效数字......”,这是wny行 打印VoltsPerADC 打印myVolts 输出数字与12位数字。我是否正确理解这部分内容? 为什么“格式”语句打印不同数量的数字? 再次感谢。这非常有帮助。 – russ 2010-04-01 11:22:06
我认为你可能会混淆“有效位数”和“浮点表示”的数学/科学概念(你没有受到本教程中术语混淆的帮助)。我期望str()的12位数字在舍入舍入错误和可读性之间取得平衡。如果您正在管理“数学”有效数字,请使用格式进行控制。 str(0.1)可能比一个有意义的长度更具实用便利性。有关详细信息,另请参阅http://docs.sun.com/source/806-3568/ncg_goldberg.html。 – msw 2010-04-01 11:46:06