我希望a四舍五入到13.95。我试过用圆形,但我得到:
>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
有关标准库Decimal类的类似问题,请参阅How can I format a Decimal to always show 2 Decimal places?。
我希望a四舍五入到13.95。我试过用圆形,但我得到:
>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
有关标准库Decimal类的类似问题,请参阅How can I format a Decimal to always show 2 Decimal places?。
当前回答
下面是使用format函数的简单解决方案。
float(format(num, '.2f'))
注意:我们将数字转换为浮点数,因为format方法返回字符串。
其他回答
在Python 2.7中:
a = 13.949999999999999
output = float("%0.2f"%a)
print output
我使用的方法是字符串切片。它相对快速和简单。
首先,将浮点数转换为字符串,然后选择您希望的长度。
float = str(float)[:5]
在上面的单行中,我们将值转换为字符串,然后将字符串仅保留为其前四位数字或字符(包括)。
希望这有帮助!
Use
print"{:.2f}".format(a)
而不是
print"{0:.2f}".format(a)
因为后者在尝试输出多个变量时可能会导致输出错误(请参见注释)。
对于原始Python:
对于浮点到字符串转换的2个小数点:
a = 13.949999999999999
format(a, '.2f')
对于浮点到浮点转换的2个小数点:
a = 13.949999999999999
round(float(a), 2)
or
float(format(a, '.2f'))
请尝试以下代码:
>>> a = 0.99334
>>> a = int((a * 100) + 0.5) / 100.0 # Adding 0.5 rounds it up
>>> print a
0.99