我在python中生成或获取小数值时遇到问题。 现在,我使用float(),但它返回.0而不是.00 ......
>>> d = 10
>>> float(d)
10.0
>>>
如何设置以.00?
返回的十进制值>>10.00
提前感谢...
答案 0 :(得分:6)
Python仅显示所需内容,因此它取代了10.0
如果将其打印为10.00。
要做到这一点。
>>> d = 10
>>> print "Value: %.2f" % float(d)
Value: 10.00
>>>
答案 1 :(得分:3)
如果您希望算术考虑到您应该拥有的时间段之后有多少位数,则必须使用decimal模块:
>>> from decimal import Decimal
>>> Decimal("10.0")
Decimal('10.0')
>>> Decimal("10.00")
Decimal('10.00')
>>> Decimal("10.0")**2
Decimal('100.00')
>>> Decimal("10.00")**2
Decimal('100.0000')
我想我也应该提到python uncertainties module:
>>> from uncertainties import ufloat
>>> x = ufloat((2, 0.25))
>>> x
2.0+/-0.25
>>> square = x**2 # Transparent calculations
>>> square
4.0+/-1.0
答案 2 :(得分:2)
您还可以使用format
,如下所示:
>>> '{0:.2f}'.format(float(d))
10.00
答案 3 :(得分:0)
Python正在显示10.0
,因为您显示的是浮点数,而Python只显示所需的小数位数。
如果您想打印10.00
用于显示目的,请使用字符串格式化运算符%
,如下所示:
>>> a = 10
>>> float (a)
10.0
>>> "%2.2f" % a
'10.00'
>>>
有关string formatting operations的更多信息。