我正在尝试将一个float字段四舍五入到Odoo 10中的下一个数字。我正在按房间长度计算房间宽度
@api.onchange('roomwidth')
def _onchange_roll_required(self):
self.rolls_required = (self.roomwidth or 1) / (self.carpet_width or 1)
地毯的宽度为6,因此13x9的房间的尺寸为2.17。我需要将此2.17设为3,所以我需要四舍五入到下一个数字。我已经使用下面的3位数字,但从未四舍五入
rolls_required = fields.Float("Rolls Required",digits=(12,3))
答案 0 :(得分:0)
使用内置的round()函数。
ex:
a = 3.93
print(round(a,0))// 4.0
舍入函数需要2个参数,第二个是要舍入的数字
编辑:
哦!对于那个很抱歉 ! 在这里,试试这个:
a = 2.17
def rnd(a):
if((a+1)-a >= 0.5):
return int(a+1)
else:
return round(a, 0)
print(rnd(a)) // 3
答案 1 :(得分:-2)
正如Drako在他的评论中提到的那样,您需要检查小数点后是否有内容,然后在基数上加1。 试试这个:
num = 2.17
if num % 1 != 0:
rounded_num = int(num+1)
print(rounded_num)