Java 如何控制JSP中数字的显示?
我想问一个关于JSP和Java的问题。我正在编写JSP页面,并且有一个bean类。在这个类中,我有一个getter函数,它将在jsp页面中返回一个双变量。我使用以下代码来显示数字Java 如何控制JSP中数字的显示?,java,jsp,Java,Jsp,我想问一个关于JSP和Java的问题。我正在编写JSP页面,并且有一个bean类。在这个类中,我有一个getter函数,它将在jsp页面中返回一个双变量。我使用以下代码来显示数字 <p> the value of AB is <%=obj.getValue() %> <p> 然而,真正的显示如下 the value of AB is 0.45 the value of AB is 0.4569877987 我只想显示最后两位数字。我应该怎么做才能显示我想
<p> the value of AB is <%=obj.getValue() %> <p>
然而,真正的显示如下
the value of AB is 0.45
the value of AB is 0.4569877987
我只想显示最后两位数字。我应该怎么做才能显示我想要的。我应该修改JSP页面还是Java类变量?谢谢。首先回答您的最后一个问题-您应该修改JSP页面,因为您希望更改数字的显示方式,而不是实际数字 为此,您可以使用对象将数字转换为您想要的任何格式的文本,而不是调用数字的默认toString方法。在这种情况下,您可能希望使用:
new DecimalFormat("#0.##")
作为格式字符串
但是,有一个JSTL标记可以实现这一点,这是解决问题的更好方法。您可以使用
十进制格式
将值格式化为字符串,例如:
DecimalFormat df = new DecimalFormat("#0.00");
(该模式假定您始终希望小数部分包含两位数字,即使小数部分为零。否则,请使用#0.##
)
但是,通常建议不要直接调用DecimalFormat
构造函数。相反,建议的做法是调用NumberFormat
的工厂方法之一,然后根据需要自定义模式,例如:
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
Javadoc,包括示例:
<%@ page import="java.text.NumberFormat" %>
<%
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
%>
[...]
<p> the value of AB is <%= nf.format(obj.getValue()) %> <p>
[...]
AB值
另请参见Bozho的答案,了解使用JSTL实现相同结果的方法。在JSP中,您可以使用JSTL标记来实现这一点。您可以设置
pettern
(#0.##
)或maxFractionDigits=“2”
避免在JSP中使用Java代码-改用JSTL。看看