我想在ejs中使用类似于printf的格式设置浮点数,如下所示:
printf("%2.2f", mynumber)
是否有推荐的紧凑方法?
答案 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') %>
但是无论哪种方式都很难看。