Nunjucks强制显示计算后货币值保留两位小数的技术咨询
解决Nunjucks货币值相加后强制显示两位小数的问题
可以直接利用JavaScript的toFixed()方法实现需求,它会将数字格式化为指定小数位数的字符串,自动补零。修改后的代码如下:
{{ ((data['facility-1new-paid'] | float) + (data['facility-5new-paid'] | float)).toFixed(2) }}
说明:
toFixed(2)会强制保留两位小数,整数(如10变为10.00)、一位小数(如10.2变为10.20)、两位小数(如10.26保持不变)的场景都能覆盖。- 注意:
toFixed()返回的是字符串类型,如果后续需要做数值运算,需再转换为数字;若仅用于展示货币格式,字符串类型完全适用。
如果需要更灵活的格式化(比如添加千位分隔符),也可以自定义Nunjucks过滤器:
- 在Node.js环境中定义过滤器:
const nunjucks = require('nunjucks'); const env = nunjucks.configure(); env.addFilter('currency', function(num) { return num.toFixed(2); });
- 在模板中使用自定义过滤器:
{{ ((data['facility-1new-paid'] | float) + (data['facility-5new-paid'] | float)) | currency }}
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

