如何向上取整任意小数值

2 投票
5 回答
22215 浏览
提问于 2025-04-18 08:38

我想让这个值无论是什么情况都向上取整,也就是说,举个例子:

Strength = 16.33333

我应该用什么方法让它(无论结果是多少)都向上取整到下一个整数呢?

5 个回答

0

最简单的方法

def round_up(number, downBelowZero = False):
    if(str(number).find(".")>-1):
        x = str(number).split(".")
        if(downBelowZero and number<0):
            return int(x[0])-1
        else:
            return int(x[0])+1
    
    else:
        return int(number)
0

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则满足时,程序才会按照我们的要求去做。

比如说,如果你想让程序在用户输入一个特定的数字时,显示一条消息,你就需要用到条件判断。这种判断就像是在问:“如果这个条件成立,我就做这件事。”

在代码中,这种条件判断通常用“if”这个词来表示。它后面跟着一个条件,如果这个条件为真,程序就会执行“if”后面的大括号里的代码。

简单来说,条件判断就像是给程序设置了一扇门,只有当条件满足时,程序才能通过这扇门去做后面的事情。

def round_up(number_):
    rounded = int(number_) if round(number_) == number_ else int(number_)+1
    return rounded
1

嘿,我之前回答过这个问题,但似乎没有太大帮助。今天我发现其实你可以在不导入数学库的情况下,把一个整数或小数向上取整到下一个数字。只需要这样做。

round(number+0.5)

无论你输入什么,哪怕是一个整数或者小数,它都会自动向上取整到下一个数字。

我通常不喜欢使用导入的库,如果可以避免的话!这是一种不使用 math.ceil() 方法而向上取整到整数的另一种方法。希望这对你有帮助!

1

还有一种方法可以做到这一点:

a if a.is_integer() else int(a)+1
14

简单来说,你可以使用 ceil 函数:

>>> import math
>>> a = math.ceil(16.33333)
>>> a
17
>>> a = math.ceil(17)
>>> a
17

撰写回答