我的输入是 3.23,但是当我在上面使用浮点数时,它变成了 3.2,
当我的输入是 3.00 时,当我浮在上面时,它变成 3.0
当我从字符串转换为浮点数时,我仍然希望它是 3.00 而不是 3.0 可能吗?我想知道使它成为可能的代码,当我在解决小数点到 2 位数很重要的问题时,3.23 比 3.2 更好,以获得更高的精度
由于这个线程首先是关于“字符串格式化十进制python”这个词,我认为最好提供一个更新的答案:
>>> P=34.3234564
>>> string="{:.2f}".format(P)
>>> string
'34.32'
如果你想要十进制精度使用 pythondecimal
模块:
from decimal import Decimal
x = Decimal('3.00')
print x
打印:
Decimal('3.00')
我想您想要的是将浮点数转换为具有所需小数位数的字符串。您可以使用 %.3f 来实现(这里 3 是您要打印的小数位数。例如:
>>> print "Value: %.2f" % 3.0000
值:3.00
如果要将浮点数打印到所需的精度,可以使用如下输出格式代码:
假设 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。