我使用的是浮动价格的整数值,但我的价格34.50仍四舍五入为34。达到34.50时应该为35。主要是它的工作正常,但我不明白为什么它不能在3000价格百分比折扣上工作,是1.15
我也在附加屏幕和代码。
@api.one
@api.depends('discount_type','discount_rate','amount_total')
def _compute_discount(self):
mod_obj = self.env['ir.model.data']
amount_discount = 0.0
if self.discount_type == 'percent':
amount_discount = self.amount_untaxed * self.discount_rate / 100
else:
amount_discount = self.discount_rate
self.amount_discount = round(amount_discount)
预先感谢
答案 0 :(得分:1)
您之所以有此结果,是因为在 python 1.15 * 3000 = 34.4999999 中, 34.4999的回合为34
答案 1 :(得分:0)
我找到了解决此问题的方法。这是由于python和实际上大多数编程语言中的浮点问题所致。
将3000 * 1.15 / 100.0放入python终端实际上会给您34.49999999999999,然后将其舍入为34。
因为它们是价格,所以您可以使用 round(round(round(amount_discount,2))将其四舍五入为34.50,然后四舍五入为35。通常,任何大于.495的内容都将四舍五入。 / p>