使用Python评级的圆形十进制数

时间:2016-11-24 07:46:45

标签: python python-2.7

我想按如下方式对十进制数进行舍入: -

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

4 个答案:

答案 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

或查看此https://stackoverflow.com/a/29308619/6107715