java - 我如何在我的 JSP 页面中格式化这个代表十进制数字的字符串?

标签 java jsp casting double

我有以下问题。我正在处理一个使用 JQuery 的 JSP 页面。

在此页面中,我将一些金额显示在表格中,如下所示:

<td width = "8.33%">
    <%=salDettaglio.getTotImponibile().toString() != null ? salDettaglio.getTotImponibile().toString() : "" %>
</td>

获取的对象(通过getTotImponibile()方法)是一个BigDecimal

在我的表格的 td 中,它显示的值为:447.93

现在我必须按以下方式格式化此金额:

  1. 使用 , 字符代替 .(用于十进制数字)。

  2. 之后始终显示 2 位小数。 例如,我只能有一位小数作为 10,4,我必须显示 10,40 或者我可以有超过 2 位小数数字,在这种情况下,我只需要显示前 2 个十进制数字(例如 10,432,所以我必须显示 10,43)

那么我该怎么做才能完成这两项任务呢?实际上我显示的是一个代表十进制数的字符串。我是否必须将此值转换为 double 值或类似的值?

最佳答案

首先创建一个类(即 NumberFormat.java),然后将以下方法放在 NumberFormat.java 类中:

public static String priceWithDecimal (Double price) {
    DecimalFormat formatter = new DecimalFormat("###,###,###.00");
    return formatter.format(price);
}

public static String priceWithoutDecimal (Double price) {
    DecimalFormat formatter = new DecimalFormat("###,###,###.##");
    return formatter.format(price);
}

现在,在您的 jsp 中使用如下代码:

<td width = "8.33%">
    <%=salDettaglio.getTotImponibile().toString() != null ? NumberFormat.priceWithDecimal(Double.parseDouble(salDettaglio.getTotImponibile().toString())) : "" %>
</td>

此解决方案适合您。

关于java - 我如何在我的 JSP 页面中格式化这个代表十进制数字的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501678/

相关文章:

java - 我可以在弹性负载均衡器前面的 EC2 中构建服务限制吗?

java - Apache HttpClient 超时

Java 和类型转换通用对象

java - Android - 为什么要将对象转换为类?

c# - 如何通过 .Net Web 服务使用相同的域实体?

java - 如何使用 CometD 向 channel 的所有 Javascript 订阅者发布消息?

java - 使用 Spring 3.2 和 Mockito 进行 Controller 单元测试的上下文初始化问题

jsp - 如何在包含的页面中使用声明的变量?

java - jsp 和 .equals 和 .trim() 空指针异常

java - JSP 中的 GWT AutoSuggest