【发布时间】:2014-06-04 21:03:25
【问题描述】:
我想让这个值不管它是什么总是四舍五入,所以例子:
Strength = 16.33333
我会用什么来使它(无论它等于什么)四舍五入到下一个整数?
【问题讨论】:
-
感谢大家的回复,我已经解决了。
标签: python python-3.x decimal rounding python-3.3
我想让这个值不管它是什么总是四舍五入,所以例子:
Strength = 16.33333
我会用什么来使它(无论它等于什么)四舍五入到下一个整数?
【问题讨论】:
标签: python python-3.x decimal rounding python-3.3
只需使用ceil函数:
>>> import math
>>> a = math.ceil(16.33333)
>>> a
17
>>> a = math.ceil(17)
>>> a
17
【讨论】:
== 17!这只是告诉您ceil 函数结果的一种方式。
另一种方法:
a if a.is_integer() else int(a)+1
【讨论】:
嘿,我之前回答过这个问题,但它并没有太大帮助。今天我意识到你仍然可以在不导入数学的情况下将整数/浮点数四舍五入到下一个数字。就这样做吧。
round(number+0.5)
无论您输入什么,即使它是整数或浮点数,它总是会四舍五入到下一个数字。
如果可以避免它们,我通常不喜欢使用导入!使用math.ceil() 方法将整数四舍五入的另一种方法。希望这会有所帮助!
【讨论】:
round(17 + 0.5) 是 18,而不是 17。
def round_up(number_):
rounded = int(number_) if round(number_) == number_ else int(number_)+1
return rounded
【讨论】:
最简单的方法
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)
【讨论】:
math function 来隐式处理所有边缘情况。