Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何控制JSP中数字的显示?_Java_Jsp - Fatal编程技术网

Java 如何控制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 我只想显示最后两位数字。我应该怎么做才能显示我想

我想问一个关于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

我只想显示最后两位数字。我应该怎么做才能显示我想要的。我应该修改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,包括示例:

这应该适用于JSP页面:

<%@ 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。看看