python格式化浮点数

时间:2009-06-08 11:05:03

标签: python floating

我的输入是3.23,但是当我在它上面使用float时,它变为3.2,

当我的输入为3.00时,当我对它进行浮动时,它变为3.0

当我从字符串转换为float时,我仍然希望它是3.00而不是3.0 可能吗? 我想知道使代码成为可能的代码,当我在做一个小数点直到2位数的问题时,3.23优于3.2,以获得更高的精度

4 个答案:

答案 0 :(得分:3)

由于这个帖子首先出现在“字符串格式化十进制python”字样中,我认为最好提供一个更新的答案:

>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'

答案 1 :(得分:1)

如果你想要小数精度,请使用python decimal模块:

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

打印:

Decimal('3.00')

答案 2 :(得分:1)

我想你想要的是将float转换为一个包含你想要的小数位数的字符串。您可以使用%.3f实现这一点(此处3是您要打印的小数位数。例如:

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

价值:3.00

答案 3 :(得分: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。