jsp计算器问题的输出小数部分报错
java吧
全部回复
仅看楼主
level 9
QQtangAATV 楼主
int num1=0;
int num2=0;
int result=0;
double result2=0;
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
if(){.................
}else if(flag.equals("/")){
double num3 = (double)num1;
double num4 = (double)num2;
result2=num3/num4;
}
out.println("结果是:"+result2);
放到eclipse没问题, ie页面因为这小数转换部分报错(如果不设小数值,则3/4也输出结果0)
org.apache.jasper.JasperException: An exception occurred processing JSP page /myCal.jsp at line 4340: int result=0;41: double result2=0;42: 43: num1=Integer.parseInt(s_num1);44: num2=Integer.parseInt(s_num2);45: 46: if(flag.equals("+")){Stacktrace:org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:580)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)javax.servlet.http.HttpServlet.service(HttpServlet.java:731)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.NumberFormatException: nulljava.lang.Integer.parseInt(Integer.java:542)java.lang.Integer.parseInt(Integer.java:615)org.apache.jsp.myCal_jsp._jspService(myCal_jsp.java:124)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:731)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)javax.servlet.http.HttpServlet.service(HttpServlet.java:731)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.82 logs.
2017年11月14日 23点11分 1
level 9
QQtangAATV 楼主
跳转问题解决了, 小数问题还没解决,就是a/b会=0,而实际不等于0
<!-- 这是计算器的界面 -->
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<h1>傻瓜计算器</h1>
<%
String s_num1 = request.getParameter("num1");
String s_num2 = request.getParameter("num2");
String flag=request.getParameter("flag");
int num1=0;
int num2=0;
int result=0;
if (s_num1 != null && s_num2 != null && flag != null) {
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
if(flag.equals("+")){
result=num1+num2;
}else if(flag.equals("-")){
result=num1-num2;
}else if(flag.equals("*")){
result=num1*num2;
}else if(flag.equals("/")){
result=num1/num2;
}
}
%>
<script language="javascript">
<!--
function checkNum(){
if(form1.num1.value==""){
window.alert("第一个输入框不能为空,请重试");
return false;
}
if(form1.num2.value==""){
window.alert("第二个输入框不能为空,请重试");
return false;
}
if(Math.round(form1.num1.value)!=form1.num1.value){
window.alert("第一个输入的不是一个数值,请重试");
return false;
}
if(Math.round(form1.num2.value)!=form1.num2.value){
window.alert("第二个输入的不是一个数值,请重试");
return false;
}
}
-->
</script>
<body>
<form name="form1" action="myCal.jsp">来输入第一个数看看:<input type="text" name="num1"><br>
<select name="flag">
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
</select><br>
来输入第二个数看看:<input type="text" name="num2"><br>
<input type="submit" value="计算" onclick="return checkNum();"><br>
<% out.println("结果是:"+result); %>
</form>
</body>
</html>
2017年11月15日 00点11分 3
1