-5

私の入力は 3.23 ですが、float を使用すると 3.2 になり、

入力が 3.00 の場合、フロートすると 3.0 になります。

文字列から float に変換するとき、3.0 ではなく 3.00 にしたいのですが、可能ですか? それを可能にするコードを知りたいのですが、小数点以下 2 桁までが問題になる問題では、3.23 の方が精度が高く、3.2 よりも優れています。

4

4 に答える 4

3

このスレッドは最初に「stringformattingdecimalpython」という言葉になっているので、もっと最近の答えを提供するのは良いことだと思います。

>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'
于 2012-12-16T13:17:49.427 に答える
1

小数の精度が必要な場合は、pythondecimalモジュールを使用します。

from decimal import Decimal
x = Decimal('3.00')
print x

それは印刷します:

Decimal('3.00')
于 2009-06-08T11:15:37.420 に答える
1

あなたが望むのは、浮動小数点数を必要な小数点以下の桁数の文字列に変換することだと思います。%.3f を使用してそれを実現できます (ここで 3 は、出力する小数点以下の桁数です。例:

>>> print "Value: %.2f" % 3.0000

値: 3.00

于 2009-06-08T11:16:43.453 に答える
0

浮動小数点数を目的の精度で出力したい場合は、次のような出力フォーマット コードを使用できます。

x = 3.125 と仮定

print "%.1f" % (x)    # prints 3.1
print "%.2f" % (x)    # prints 3.12
print "%.3f" % (x)    # prints 3.125
print "%.4f" % (x)    # prints 3.1250

これはpython 2.6で動作します(バージョン3で印刷機能が変更されたと思います)。

また、浮動小数点数は特定の精度でしか保存できないため、正確に同じ数が返されない場合があることにも注意してください。たとえば、0.1 は 0.9999999987 のように格納される場合があります。

于 2009-06-08T11:16:32.953 に答える