Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
Jsp 如何使用JSTL将十进制值四舍五入到两位,其中列表是作为数据库的输出创建的_Jsp_Jstl_Jsp Tags - Fatal编程技术网

Jsp 如何使用JSTL将十进制值四舍五入到两位,其中列表是作为数据库的输出创建的

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

我正在从事一个小项目,在这个项目中,sql输出(结果集)被转换为列表,并传递给JSP以显示数据

如何将特定列的内容四舍五入到小数点后两位

以下是我目前掌握的代码:

正在传递resultSet以创建列表:

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}"/>