3

新手来了 我有以下代码:

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

我一直在寻找有关默认情况下如何确定有效位数的解释,但找不到对我有意义的解释。此链接链接文本表明默认情况下“打印”语句将数字打印到 10 个有效数字,但在我的结果中似乎并非如此。

如何确定有效位数/精度?

有人可以为我解释一下吗。

提前感谢您的时间和耐心。

4

2 回答 2

6

精度由硬件决定。Python 对其浮点数使用硬件浮点数(实际上是双精度浮点数)。本教程中讨论了这些含义:http: //docs.python.org/tutorial/floatingpoint.html

如果您想更好地控制精度和舍入,您应该考虑使用十进制模块。

于 2010-04-01T10:59:14.913 回答
0

一般来说,如果文档不在 python.org 上,则它不具有权威性。如果您查看print它会告诉您浮点数首先转换为字符串,并且float会告诉您(如Thomas 指出的)机器本机double类型是浮点数的存储方式,并且该语言不保证有效数字。

于 2010-04-01T11:07:25.530 回答