python:将浮点数向上舍入到下一个奇数

a.s*_*iet 4 python numpy rounding

我如何能圆一个FLOAD 下一个奇数.我发现在这里偶数可以做到这一点.所以我尝试了类似的东西:

import numpy as np

def round_up_to_odd(f):
    return np.ceil(f / 2.) * 2 + 1
Run Code Online (Sandbox Code Playgroud)

但当然这不会将其舍入到NEXT奇数:

>>> odd(32.6)
35.0
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Hol*_*olt 13

ceil分开之前你需要:

import numpy as np

def round_up_to_odd(f):
    return np.ceil(f) // 2 * 2 + 1
Run Code Online (Sandbox Code Playgroud)


Jun*_*sor 6

关于什么:

def round_up_to_odd(f):
    f = int(np.ceil(f))
    return f + 1 if f % 2 == 0 else f
Run Code Online (Sandbox Code Playgroud)

这个想法首先是舍入到一个整数,然后检查整数是奇数还是偶数.