2009-06-08 129 views
-5

我的投入是3.23,但是当我使用就可以了浮动,就变成3.2,蟒蛇格式化浮点数

当我输入的是3.00,当我做浮在上面,就变成3.0

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

+6

http://stackoverflow.com/questions/964369/quick-python-question你碰巧在同一类;) – 2009-06-08 11:06:55

回答

1

我想你想要的是将浮点数转换为你想要的小数位数的字符串。你可以做到这一点使用%.3f(这里3是要打印的小数位数,例如:

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

值:3.00

1

如果要小数精度使用python decimal模块:

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

,打印:

Decimal('3.00') 
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之类的东西。

3

由于这线程先上写着“字符串格式化小数蟒蛇”,我认为这是很好的提供了更近的答案:

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