zoo*_*oks 12 python python-3.x
我需要ceil和floor 3/2结果(1.5)而不使用import math.
math.floor(3/2)=> 3//2
math.ceil(3/2)=>?
好的,问题在于:将所有数字加上15 + 45 + 15 + 45 + 15 ...加N项.
sum = (n//2) * 5 + int(n/2) * 15
bak*_*kar 25
>>> 3/2
1.5
>>> 3//2
1
>>> -(-3//2)
2
我知道这已经很旧了......但你也可以这样称呼它们:
>>> (3/2).__ceil__()
2
>>> (3/2).__floor__()
1
编辑:这适用于 python 3.9 及以上版本
小智 6
尝试
def ceil(n):
    return int(-1 * n // 1 * -1)
def floor(n):
    return int(n // 1)
我使用 int() 使值成为整数。由于天花板和地板是一种四舍五入,我认为整数是合适的返回类型。
整数除法 //, 转到数轴左侧的下一个整数。因此,通过使用 -1,我切换方向以获得天花板,然后使用另一个 * -1 返回原始标志。数学是从左到右完成的。
尝试:
def ceil(n):
    res = int(n)
    return res if res == n or n < 0 else res+1
def floor(n):
    res = int(n)
    return res if res == n or n >= 0 else res-1
| 归档时间: | 
 | 
| 查看次数: | 11963 次 | 
| 最近记录: |