【发布时间】:2019-01-16 09:09:16
【问题描述】:
我想在 ejs 中格式化浮点数,类似于 printf,如下所示:
printf("%2.2f", mynumber)
有推荐的紧凑方法吗?
【问题讨论】:
-
toFixed() 或 toPrecision() 方法怎么样?
标签: javascript ejs number-formatting
我想在 ejs 中格式化浮点数,类似于 printf,如下所示:
printf("%2.2f", mynumber)
有推荐的紧凑方法吗?
【问题讨论】:
标签: javascript ejs number-formatting
据我所知,没有类似 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') %>
但无论哪种方式都很难看。
【讨论】: