jsp显示小数问题?
在jsp页面运行一个sql语句,其中有一个字段是ROUND(CAST(A AS DOUBLE)/B,2),使用rs.getDouble(10)取出显示在页面后,很多值显示不正常(如:4.329999998等),有的就能正常显示四舍五入的结果(如:4.33)。更奇怪的是,如果复制结果拷贝到excel表中后,4.329999998就会显示为4.33,这是什么问题?该怎样解决?
小数位截取了
那个你要自己控制一下小数位要显示多少位,还有double底层是用了2进制,所以有可能计算出来的结果不准,试一下用BigDecimal
subString 截取字符串啊
用下面的方法试下
public double round(double doubValue,int scale){
if(scale<0) {
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(doubValue));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
我都是用这个方法的解决小数问题的.
问题原因:float 和double不能用于计算,而且经常精度会有损失
解决方法:使用java.math.BigDecimal
在运算中设置保留小数位数
相关问答:
我是用STRUTS ,做了一个JSP页面,提交后没有存入数据库。
JSP代码如下:
aa.jsp代码
<%@ page contentType="text/html;charset=gb2312" language="java"%>
<%@ taglib uri=" ......
<%@page language="java" contentType="text/html;charset=gb2312" import="java.sql.*"%>
<jsp:useBean id="db" class="wang.connectDB"/>
< ......
问题是这样的:
我有一个文件nagiv.jsp 另一个文件failure.jsp包含他,同时nagiv文件中有一个可以跳转到yy.jsp的commandButton,但是我将failure中点击nagiv中的哪个commandButton,也面不会跳转 ......
HTML code:
<%@ page language="java" import="java.util.*,com.test.model.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePa ......
在jsp页面中怎么获得Struts2在action中配置的request。
我在后台的配置如下:
List list = new ArrayList();
list.add(users);
ActionContext ct= ActionContext.getContext();
HttpServletRequest requ ......