Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有“天花板或地板”功能?_Python_Math - Fatal编程技术网

Python 是否有“天花板或地板”功能?

Python 是否有“天花板或地板”功能?,python,math,Python,Math,我在寻找一个函数,给定一个浮点,它将返回浮点的整数,或者四舍五入到最接近的整数。模块中是否有内置的或可用的这样的东西 下面的代码实现了这个技巧,但我避免了重新发明轮子 import math def realround(number): _, d = divmod(number, 1) if d > 0.5: return int(math.ceil(number)) else: return int(math.floor(numb

我在寻找一个函数,给定一个浮点,它将返回浮点的整数,或者四舍五入到最接近的整数。模块中是否有内置的或可用的这样的东西

下面的代码实现了这个技巧,但我避免了重新发明轮子

import math

def realround(number):
    _, d = divmod(number, 1)
    if d > 0.5:
        return int(math.ceil(number))
    else:
        return int(math.floor(number))

print(realround(12.3))
print(realround(14.5))
print(realround(15.8))
它叫:


但是,它将值转换为int,并且小数点右侧的值将消失截断

print(int(12.3))
print(int(14.5))
print(int(15.8))

@OliCharlesworth:从我的代码中,您可以满怀希望地想象到,我已经为此寻找了一些时间。因为我写了一个函数来执行这个操作,我很惊讶里面没有内置的东西。Pffff,downvoting因为有人问了一个问题,提供适当的代码真的是为了[审查]我并不意味着你被否决了,我只是被这个机制激怒了我只是查阅了python文档,因为我认为python的使用是公平的,但似乎不是:@Axel:在python 3中是这样的,这是一个非常可怕的问题,微妙的突破性变化。在Python3中,当使用一个参数调用时,它也会返回一个int=我刚才看到了。我很高兴我们没有选择python-谢谢“我不知道我怎么会错过这个机会。”阿克塞尔显然,把一半凑齐是失宠了。原因是,在许多环行路线上,人们倾向于更大的数字。0.5+1.5等于2,而0.5+1.5等于3。python3中使用的舍入类型导致2。看,我不想简单地截断,而是要用现在我知道的圆
print(int(12.3))
print(int(14.5))
print(int(15.8))