Jinja模板中转换字符串为数值时如何保留小数部分?
在Jinja模板中保留小数转换字符串为数值的解决办法
你用int过滤器当然会丢小数——这个过滤器本来就是专门把值转成整数类型的,自然会截断小数部分。要保留小数转成数值类型,试试下面两种方法:
直接转浮点数:用
float过滤器替代int,代码写成{{ myfield|float }}。不管你的字符串是"5.5"还是"3.1415",都会被转换成对应的浮点数,完整保留小数部分。如果输入是整数形式的字符串(比如"10"),转换后会变成10.0,依然是数值类型。控制小数位数格式化:如果需要指定保留几位小数,结合
format过滤器使用。比如要保留2位小数,写成{{ "%.2f"|format(myfield|float) }},这样5.5会被格式化为5.50,3.1415会变成3.14。
另外要注意:如果myfield可能是空值或者非数字的字符串,建议给float过滤器加默认值,避免模板报错,比如{{ myfield|float(0) }},当值无效时会默认返回0.0。
内容的提问来源于stack exchange,提问作者Vinnies
相关产品推荐
相关产品推荐

