Jsp 如何使用JSTL将十进制值四舍五入到两位,其中列表是作为数据库的输出创建的
我正在从事一个小项目,在这个项目中,sql输出(结果集)被转换为列表,并传递给JSP以显示数据 如何将特定列的内容四舍五入到小数点后两位 以下是我目前掌握的代码: 正在传递resultSet以创建列表:Jsp 如何使用JSTL将十进制值四舍五入到两位,其中列表是作为数据库的输出创建的,jsp,jstl,jsp-tags,Jsp,Jstl,Jsp Tags,我正在从事一个小项目,在这个项目中,sql输出(结果集)被转换为列表,并传递给JSP以显示数据 如何将特定列的内容四舍五入到小数点后两位 以下是我目前掌握的代码: 正在传递resultSet以创建列表: rs = stmt.executeQuery(sql); List<String> output = setData(rs); rs=stmt.executeQuery(sql); 列表输出=设置数据(rs); 设置数据: public List<String> se
rs = stmt.executeQuery(sql);
List<String> output = setData(rs);
rs=stmt.executeQuery(sql);
列表输出=设置数据(rs);
设置数据:
public List<String> setData(ResultSet rs) throws SQLException {
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
ArrayList list = new ArrayList();
while (rs.next()){
HashMap row = new HashMap(columns);
for(int i=1; i<=columns; ++i) {
row.put(md.getColumnName(i),rs.getObject(i));
}
list.add(row);
}
return list;
}
public List setData(ResultSet rs)抛出SQLException{
ResultSetMetaData md=rs.getMetaData();
int columns=md.getColumnCount();
ArrayList=新建ArrayList();
while(rs.next()){
HashMap行=新的HashMap(列);
对于(inti=1;i您可以在jsp头中执行类似的操作
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
这在需要显示最多2位小数的行中
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${ls.col3}"/>
实际问题出在我的SQL代码中。我使用了似乎不起作用的round函数。我用
to_char(计算“FM999D00”)
解决这个问题
非常感谢您对此进行深入研究。谢谢您的快速回答。但是在上面的语句中,我将把C:OUT
放在哪里呢?在使用fmt
时,这不是必需的吗?我认为您不需要'C:OUT'标记,请尝试用我发布的fmt标记替换C:OUT标记。不。该错误已被排除。在formatNumber中,value属性可以不被解析为java.lang.Number:“{ls.col3}”是您的ls.col3首先是一个数字吗?是的。除了Col1,其他一切都是一个数字。我在SQL中做了一个转换((colx/coly)为REAL)为col3
。示例输出为79.0000043
<fmt:formatNumber type="number" maxFractionDigits="2" minFractionDigits="2" value="${ls.col3}"/>