如何在 ejs 模板中格式化数字?

Posted

技术标签:

【中文标题】如何在 ejs 模板中格式化数字?【英文标题】:How to format numbers in ejs templates? 【发布时间】:2019-01-16 09:09:16 【问题描述】:

我想在 ejs 中格式化浮点数,类似于 printf,如下所示: printf("%2.2f", mynumber)

有推荐的紧凑方法吗?

【问题讨论】:

toFixed() 或 toPrecision() 方法怎么样? 【参考方案1】:

据我所知,没有类似 printf 的函数,但您确实可以访问 javascript 函数,因此您可以利用 toFixed() 和 padStart() 来执行以下操作:

<%= mynumber.toFixed(2).padStart(5,'0') %>

您会注意到我在 padStart() 中使用了 5 来容纳小数点,我不希望这适用于负数。如果您需要支持负数,则必须添加一个条件,它会变得更加混乱。它可能看起来像这样:

<% 
  if ( mynumber >= 0 )  
    %><%= mynumber.toFixed(2).padStart(5,'0') %><%
   else 
    %><%= "-" + (-1 * mynumber).toFixed(2).padStart(5,'0') %><%
  
%>

你可以尝试缩小它:

<%= (mynumber >= 0)
      ? mynumber.toFixed(2).padStart(5,'0')
      : "-" + (-1 * mynumber ).toFixed(2).padStart(5,'0') %>

但无论哪种方式都很难看。

【讨论】:

以上是关于如何在 ejs 模板中格式化数字?的主要内容,如果未能解决你的问题,请参考以下文章

在 django 模板中格式化数字

如何格式化具有特定位数的数字?

如何在 ejs 模板中使用数组显示来自 mongo 的 json 数据?

模板字符串中的数字格式(Javascript - ES6)

Kendo UI 数字格式无效的模板

如何使用 Velocity NumberTool 处理大货币数字