Python舍入到最接近的0.25

Tho*_*hom 3 python math rounding python-3.x

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

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
Run Code Online (Sandbox Code Playgroud)

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

Invalid syntax
Run Code Online (Sandbox Code Playgroud)

Ala*_*air 8

该功能math.round不存在,只需使用内置功能round

def x_round(x):
    print(round(x*4)/4)
Run Code Online (Sandbox Code Playgroud)

请注意,这print是Python 3中的一个函数,因此括号是必需的.

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

def x_round(x):
    return round(x*4)/4

print(x_round(11.20))
Run Code Online (Sandbox Code Playgroud)

如果你想要四舍五入,请使用math.ceil.

def x_round(x):
    return math.ceil(x*4)/4
Run Code Online (Sandbox Code Playgroud)

  • @Thom"round"意味着去最近的.使用`floor`或`ceil`总是向下或向上. (2认同)

Ho1*_*Ho1 8

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

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
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

4681 次

最近记录:

10 年,1 月 前