如何在 QWeb 中只打印浮动值的前两位数字(向下舍入)

How to print only first two digits of the floating value (round down) in QWeb

您好,我需要将值 10.50785 打印为 10.50 而不是 10.51。

我试过这样 <t t-esc="'{0:,.2f}'.format(float(10.50785))"/>,但它返回的值是 10.51。

在你的 _wrapped_report_class 中,定义一个像

这样的函数
_floor(self, value):
    return math.floor(value * 100) / 100 # Since you'd like to get 2 digits it's 100

或者如果您可能想使用具有不同位数的相同内容:

_floor(self, value, n):
    return math.floor(value * math.pow(10, n)) / math.pow(10, n)

不要忘记导入 class 顶部的数学库。

import math

然后在你的 qweb t-esc:

<t t-esc="'{0:,.2f}'.format(floor(10.50785))"/>

这只是一个从 qweb 调用包装报告 class 中定义的函数的示例,但我希望你明白了。