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

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

有推荐的紧凑方法吗?

【问题讨论】:

  • toFixed() 或 toPrecision() 方法怎么样?

标签: javascript ejs number-formatting


【解决方案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') %>

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

【讨论】:

    猜你喜欢
    • 2015-01-11
    • 2012-02-07
    • 2010-09-25
    • 2012-05-17
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多