我的输入是3.23,但是当我在它上面使用float时,它变为3.2,
当我的输入为3.00时,当我对它进行浮动时,它变为3.0
当我从字符串转换为float时,我仍然希望它是3.00而不是3.0 可能吗? 我想知道使代码成为可能的代码,当我在做一个小数点直到2位数的问题时,3.23优于3.2,以获得更高的精度
答案 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。