如何向上取整任意小数值
我想让这个值无论是什么情况都向上取整,也就是说,举个例子:
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