用于千位的 Web2py 数字格式

Web2py Number Formatting for Thousands

我是 Web2py 的新手。我有一个运行良好的系统,但我想改进可视化。有几个字段使用数字(在各自的 define_table 方法中定义为 double)来表示货币,但我希望它们也显示带有千位分隔符,例如 183,403,293.34 .我检查了一些文档,但我找不到处理这种形式的定制的直接方法,尽管我可能遗漏了一些东西。

对此有什么建议吗?干杯!

首先,如果表示货币,您应该使用 decimal 字段类型而不是 double(某些使用 double 值的计算可能会由于使用浮点数而产生不正确的结果内部表示)。但是,如果使用 SQLite,decimaldouble 之间没有区别,因此在这种情况下,您可能希望将所有值乘以 100 而不是存储整数。

无论如何,要在 Python 中显示带有千位分隔符的给定数值,您可以这样做:

'{:,}'.format(myvalue)

有关详细信息,请参阅 and 。

如果您通过使用字段的 represent 函数(例如网格或 .render() 方法)的 web2py 功能使用这些值,您可以定义自定义 represent函数,如:

Field('amount', 'decimal(12, 2)',
      represent=lambda v, r: '{:,}'.format(v) if v is not None else '')

您可以使用语言环境模块的 Python 功能:

{{= locale.format ('%. 2f', your_value, grouping = True)}}