我希望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?。
当前回答
使用如下lambda函数:
arred = lambda x,n : x*(10**n)//1/(10**n)
这样你就可以:
arred(3.141591657, 2)
然后得到
3.14
其他回答
这很简单,比如:
使用十进制模块进行快速正确舍入的十进制浮点运算:d=十进制(10000000.0000009)为了实现舍入:d.quantite(十进制('0.01'))将产生十进制('10000000.00')使上述干燥:def round_decimal(数字,指数='0.01'):decimal_value=十进制(数字)return decimal_value.g量化(十进制(指数))或定义round_decimal(数字,小数位数=2):decimal_value=十进制(数字)return decimal_value.g量化(十进制(10)**-decimal_places)
PS:对其他人的批评:格式不是舍入。
我们有多种选择:
选项1:
x = 1.090675765757
g = float("{:.2f}".format(x))
print(g)
选项2:内置round()支持Python 2.7或更高版本。
x = 1.090675765757
g = round(x, 2)
print(g)
简单的解决方案在这里
value = 5.34343
rounded_value = round(value, 2) # 5.34
对于原始Python:
对于浮点到字符串转换的2个小数点:
a = 13.949999999999999
format(a, '.2f')
对于浮点到浮点转换的2个小数点:
a = 13.949999999999999
round(float(a), 2)
or
float(format(a, '.2f'))
我觉得最简单的方法是使用format()函数。
例如:
a = 13.949999999999999
format(a, '.2f')
13.95
这将产生一个浮点数,作为四舍五入到两个小数点的字符串。