我想按如下方式对十进制数进行舍入: -
n = 3.2 result n = 3
n= 3.6 result n= 4
基本上,如果小数介于.0到.4之间,那么它应向下舍入,如果小数位于.5到.9之间,那么它应该向上舍入。
n = 3.0 result = 3
n = 3.5 result = 3.5
答案 0 :(得分:2)
您可以%
使用模数-
或减去int
:
def round_(n):
if (n % int(n) == 0.5):
return n
else:
return round(n)
print (round_(3.6))
4
print (round_(3.5))
3.5
print (round_(3.4))
3
def round_(n):
if (n - int(n) == 0.5):
return n
else:
return round(n)
答案 1 :(得分:1)
试试这个,
您必须根据自己的要求制作自定义轮次功能。
def round_(n):
if n-int(n) == 0.5:
return n
else:
return round(n)
<强>结果
In [21]: round_(3.6)
Out[21]: 4.0
In [22]: round_(3.5)
Out[22]: 3.5
In [23]: round_(3.2)
Out[23]: 3.0
答案 2 :(得分:1)
据我了解您的用例,您应该使用
def r(x):
return round(x * 2.0) / 2.0
示例:
r(3.4) -> 3.5
r(3.24) -> 3.0
r(3.25) -> 3.5
r(3.74) -> 3.5
r(3.75) -> 4.0
答案 3 :(得分:0)
使用
import math
print math.ceil(x) and math.floor(x)
或
def round(x):
if (n % int(x) == 0.5):
return x
else:
return round(n=x)
print (round_(3.8))
4
print (round_(3.5))
3.5
print (round_(3.2))
3