用于千位的 Web2py 数字格式
Web2py Number Formatting for Thousands
我是 Web2py 的新手。我有一个运行良好的系统,但我想改进可视化。有几个字段使用数字(在各自的 define_table
方法中定义为 double
)来表示货币,但我希望它们也显示带有千位分隔符,例如 183,403,293.34
.我检查了一些文档,但我找不到处理这种形式的定制的直接方法,尽管我可能遗漏了一些东西。
对此有什么建议吗?干杯!
首先,如果表示货币,您应该使用 decimal
字段类型而不是 double
(某些使用 double
值的计算可能会由于使用浮点数而产生不正确的结果内部表示)。但是,如果使用 SQLite,decimal
和 double
之间没有区别,因此在这种情况下,您可能希望将所有值乘以 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)}}
我是 Web2py 的新手。我有一个运行良好的系统,但我想改进可视化。有几个字段使用数字(在各自的 define_table
方法中定义为 double
)来表示货币,但我希望它们也显示带有千位分隔符,例如 183,403,293.34
.我检查了一些文档,但我找不到处理这种形式的定制的直接方法,尽管我可能遗漏了一些东西。
对此有什么建议吗?干杯!
首先,如果表示货币,您应该使用 decimal
字段类型而不是 double
(某些使用 double
值的计算可能会由于使用浮点数而产生不正确的结果内部表示)。但是,如果使用 SQLite,decimal
和 double
之间没有区别,因此在这种情况下,您可能希望将所有值乘以 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)}}