如何使用 JsRender 模板格式化小数
How to format decimal using JsRender templates
我在我的 cshtml 页面中使用 JsRender 模板。我的数据中有一些小数值,想在逗号后显示 2 个数字,例如 17,89 或 3,00。当我的数据中有 3 个时,它在我的模板中只显示 3 个。
如何格式化十进制数据?
只是我模板中的一个小例子,展示了我如何使用数据 {{>rate}}
谢谢
如果rate
保证是一个数字,你可以这样使用JavaScript toFixed()
:
{{:rate.toFixed(2)}}
如果 rate
可以是一个字符串,您可以通过写
将其强制转换为数字
{{:(+rate).toFixed(2)}}
如果你想更好地分离代码和标记,你可以定义一个converter:
$.views.converters("dec",
function(val) {
return (+val).toFixed(2);
}
);
然后写:
{{dec:rate}}
你甚至可以让转换器变得智能,接受一个places=n
属性,来配置小数位数:
$.views.converters("dec",
function(val) {
return (+val).toFixed(this.tagCtx.props.places || 2);
}
);
然后可选择指定小数位数:
{{dec:rate places=3}}
我在我的 cshtml 页面中使用 JsRender 模板。我的数据中有一些小数值,想在逗号后显示 2 个数字,例如 17,89 或 3,00。当我的数据中有 3 个时,它在我的模板中只显示 3 个。
如何格式化十进制数据?
只是我模板中的一个小例子,展示了我如何使用数据 {{>rate}}
谢谢
如果rate
保证是一个数字,你可以这样使用JavaScript toFixed()
:
{{:rate.toFixed(2)}}
如果 rate
可以是一个字符串,您可以通过写
{{:(+rate).toFixed(2)}}
如果你想更好地分离代码和标记,你可以定义一个converter:
$.views.converters("dec",
function(val) {
return (+val).toFixed(2);
}
);
然后写:
{{dec:rate}}
你甚至可以让转换器变得智能,接受一个places=n
属性,来配置小数位数:
$.views.converters("dec",
function(val) {
return (+val).toFixed(this.tagCtx.props.places || 2);
}
);
然后可选择指定小数位数:
{{dec:rate places=3}}