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

时间:2019-01-16 09:09:17

标签: javascript ejs number-formatting

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

是否有推荐的紧凑方法?

1 个答案:

答案 0 :(得分:0)

我不知道类似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') %>

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