为什么 JSTL 使用 ${dollarAmount} 将双精度值 99 输出为 99.0(而不是 99.00)?

发布于 2024-11-02 06:35:51 字数 413 浏览 0 评论 0原文

我有一个 doubledollarAmount,其值为 99

double dollarAmount = 99;

当我尝试使用此代码

<c:out value="${dollarAmount}"/>

将 其输出到我的页面时: 99.0

因为它代表财务价值,所以我想将其输出为

99

或 as

99.00

有没有某种方法可以强制 执行此操作?

I have a double value dollarAmount which has the value 99:

double dollarAmount = 99;

When I try to output it to my page using this code:

<c:out value="${dollarAmount}"/>

It comes out as 99.0.

Because it represents a financial value, I want to output it either as

99

or as

99.00

Is there some way to force <c:out> to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

绮烟 2024-11-09 06:35:51

为什么 JSTL 将双精度值 99 输出为 99.0

当将后端数据打印到 HTML 响应时,所有非 String java 对象默认都会转换为 String。 HTML 不能以其他方式表示。您看到的是 99.0,因为这是 Double#toString(double)。格式按照文档

要格式化货币,最好使用 < fmt formatNumber>,其type设置为currency

<fmt:formatNumber value="${dollarAmount}" type="currency" currencySymbol="$" />

它将显示为

$99.00

Why does JSTL output a double value of 99 as 99.0

When printing backend data to HTML response, all non-String java objects are by default converted to String. HTML can namely not be represented on other way. You're seeing 99.0, because that's the default result of Double#toString(double). The formatting is as per the documentation.

To format currencies, better use <fmt formatNumber> whose type is set to currency.

<fmt:formatNumber value="${dollarAmount}" type="currency" currencySymbol="$" />

It'll show up as

$99.00
苏大泽ㄣ 2024-11-09 06:35:51

我建议使用 FormatNumber 标签 fmt

之类的东西

<fmt:formatNumber type="number" maxIntegerDigits="2" value="${param.num}"/>

i suggest the use of FormatNumber tag fmt

something like

<fmt:formatNumber type="number" maxIntegerDigits="2" value="${param.num}"/>
眼前雾蒙蒙 2024-11-09 06:35:51

在 java 中,打印特定数量的数字的最佳方法是 printf,这是来自 https 的第三方实用程序: //sharkysoft.com/ 可在 GNU GPL 下使用,或付费用于商业用途。这是 JavaDoc 页面: http:// /sharkysoft.com/archive/printf/docs/javadocs/lava/clib/stdio/doc-files/specification.htm

In java the best way to print out specific amounts of digits is printf, a third-party utility from https://sharkysoft.com/ available under the GNU GPL, or for a fee for commercial use. Here is the JavaDoc page: http://sharkysoft.com/archive/printf/docs/javadocs/lava/clib/stdio/doc-files/specification.htm

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文