我想在python中取消一个数字到2位小数?我怎样才能做到这一点?我尝试了几件事,但都失败了。
所以
这个问题是关于综合的,这与圆整
更为不同
答案 0 :(得分:1)
以下功能适用于您的所有示例
def roundup(x, places):
d = 10 ** places
if x < 0:
return math.floor(x * d) / d
else:
return math.ceil(x * d) / d
>>> roundup(-0.012803683, 2)
-0.02
>>> roundup(0.478078191, 2)
0.48
>>> roundup(0.450779926, 2)
0.46
答案 1 :(得分:1)
你可以试试这个:
import decimal
num = decimal.Decimal(-0.012803683).quantize(
decimal.Decimal('.01'), rounding=decimal.ROUND_UP)
print(num)
答案 2 :(得分:1)
from math import ceil
a=-0.012803683
A=ceil(a*100)/100
我就是这样做的,但是虽然这对你的正数很有用,但是对于我在abouve代码中输入的数字,它给出了A = -0.01。向上舍入-0.012803683会给你-0.01,那是一个错误的例子吗?或者,如果它是一个负数,你想要向下舍入吗?
from math import ceil
Round=lambda a:ceil(a*100)/100
允许你这样做:
>>> Round(-0.012803683)
-0.01
>>> Round(0.478078191)
0.48
>>> Round(0.450779926)
0.46