如何在 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 模板中格式化数字?的主要内容,如果未能解决你的问题,请参考以下文章