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

デフォルトで有効桁数がどのように決定されるかについての説明を探していましたが、意味のある説明を見つけるのに苦労しました。このリンクリンク テキストは、デフォルトで「print」ステートメントが数字を有効数字 10 桁まで出力することを示唆していますが、私の結果ではそうではないようです。

有効桁数/精度はどのように決定されますか?

誰かが私のためにこれに光を当てることができますか.

どうぞよろしくお願いいたします。

4

2 に答える 2

6

精度はハードウェアによって決定されます。Python は、フロートにハードウェア フロート (実際には double) を使用します。その影響については、チュートリアルで説明されています: http://docs.python.org/tutorial/floatingpoint.html

精度と丸めをより細かく制御したい場合は、decimalモジュールの使用を検討してください。

于 2010-04-01T10:59:14.913 に答える
0

一般に、ドキュメントが python.org にない場合、そのドキュメントは信頼できません。printを見ると、浮動小数点数は最初に文字列に変換され、floatは ( Thomas が指摘したように) マシン ネイティブのdouble型が float の格納方法であり、言語は有効桁数について保証しないことを示します。

于 2010-04-01T11:07:25.530 に答える