Templates 千分之二

Templates 千分之二,templates,format,numbers,jinja2,asciidoc,Templates,Format,Numbers,Jinja2,Asciidoc,我试图使用Jinja2模板在AsciiDoc中打印一个变量,但我没有找到使用千位分隔符(空格或点)打印这个数字的方法。这个数字是文本,我把它格式化成浮点数,然后用我想要的小数打印出来,但除此之外,我想用1000个分隔符打印出来。我就是这样做的: ### dc_max_avg_memory_usage.json.data.result[0].value[1] = 12345.6789 {{ '%0.0f'| format(dc_max_avg_memory_usage.json.data.res

我试图使用Jinja2模板在AsciiDoc中打印一个变量,但我没有找到使用千位分隔符(空格或点)打印这个数字的方法。这个数字是文本,我把它格式化成浮点数,然后用我想要的小数打印出来,但除此之外,我想用1000个分隔符打印出来。我就是这样做的:

### dc_max_avg_memory_usage.json.data.result[0].value[1] = 12345.6789

{{ '%0.0f'| format(dc_max_avg_memory_usage.json.data.result[0].value[1]|float) }} 
这会将数字打印为
12345.67
,但我希望它像
12345,67
12.345,67


有人能帮我吗?提前谢谢

Jinja2的
格式
过滤器使用
printf
样式的格式字符串。看

Python的
format
函数有更多的特性,可以使用逗号作为分组运算符。看

在Python中,您可以:

print(“{:,.2f}.”格式(12345.6789))
为了能够在Jinja模板中使用Python的
格式
,您必须创建一个自定义过滤器:

importjinja2
env=jinja2.Environment()
def commafy(值):
“”“将千位分隔符应用于浮点数,小数点后两位。”“”
返回“{:,.2f}”。格式(浮点(值))
环境过滤器['commafy']=commafy
template_string=“{{mynum | commafy}}”
template=env.from\u字符串(template\u字符串)
打印(template.render(mynum='12345.6789'))