Python舍入到最接近的0.25

Python round to nearest 0.25

本问题已经有最佳答案,请猛点这里访问。

我想将整数舍入到最接近的0.25十进制值,如下所示:

1
2
3
4
5
6
7
8
import math

def x_round(x):
    print math.round(x*4)/4

x_round(11.20) ## == 11.25
x_round(11.12) ## == 11.00
x_round(11.37) ## == 11.50

这在Python中给出了以下错误:

1
Invalid syntax


round是Python 3.4中的内置函数,并且更改了打印语法。 这在Python 3.4中运行良好:

1
2
3
4
5
6
def x_round(x):
    print(round(x*4)/4)

x_round(11.20) == 11.25
x_round(11.12) == 11.00
x_round(11.37) == 11.50

函数math.round不存在,只需使用内置的round

1
2
def x_round(x):
    print(round(x*4)/4)

请注意,print是Python 3中的函数,因此括号是必需的。

目前,您的功能不会返回任何内容。 从函数返回值可能更好,而不是打印它。

1
2
3
4
def x_round(x):
    return round(x*4)/4

print(x_round(11.20))

如果要向上舍入,请使用math.ceil

1
2
def x_round(x):
    return math.ceil(x*4)/4