如何使用 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}}