Programación General > JSP/Servlets
problema al cargar datos decimales con jsp
thecarfal:
Buen dia el mismo es para ver si me pueden ayudar en un problema que tengo con una aplicacion elaborada en codigo jsp al intentar cargar monto_cedido, creditos_del_ejercicio, total_creditos_disponibles los cual son datos decimales y anteriormente eran enteros; aca le dejo el codigo.
<%
Connection con = null;
try {
String campo = request.getParameter("rif_cedente");
if (campo instanceof String) {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:SQLSERVER");
Statement stmt = con.createStatement();
double monto_cedido;
double creditos_del_ejercicio;
double total_creditos_disponibles;
if (request.getParameter("monto_cedido").equals(""))
monto_cedido = 0;
else
monto_cedido = Double.parseDouble(request.getParameter("monto_cedido"));
if (request.getParameter("creditos_del_ejercicio").equals(""))
creditos_del_ejercicio = 0;
else
creditos_del_ejercicio = Double.parseDouble(request.getParameter("creditos_del_ejercicio"));
if (request.getParameter("total_creditos_disponibles").equals(""))
total_creditos_disponibles = 0;
else
total_creditos_disponibles = Double.parseDouble(request.getParameter("total_creditos_disponibles"));
String cadena = "insert into s7_9_Inventario_Cesion (rif_cedente, nombre_cedente, rif_cesionario, nombre_cesionario, numero_escri_notif, fecha_escri_notif, fecha_contrat_cesion, monto_cedido, tributo_orig_credito_fiscal, periodo_orig_credito_fiscal, numero_declaracion_credito_fiscal, fecha_declaracion_credito_fiscal, creditos_del_ejercicio, total_creditos_disponibles, status_creditos, mes, ano, citranscriptor, Observaciones) values ( '"+ request.getParameter("rif_cedente") +"', '"+ request.getParameter("nombre_cedente") +"', '"+ request.getParameter("rif_cesionario") +"', '"+ request.getParameter("nombre_cesionario") +"', '"+ request.getParameter("numero_escri_notif") +"', '"+ request.getParameter("fecha_escri_notif") +"', '"+ request.getParameter("fecha_contrat_cesion") +"', "+ (monto_cedido) +", '"+ request.getParameter("tributo_orig_credito_fiscal") +"', '"+ request.getParameter("periodo_orig_credito_fiscal") +"', " +
"'"+ request.getParameter("numero_declaracion_credito_fiscal") +"', '"+ request.getParameter("fecha_declaracion_credito_fiscal") +"', "+ (creditos_del_ejercicio) +", "+ (total_creditos_disponibles) +", '"+ request.getParameter("status_creditos") +"', '"+ session.getAttribute("Mes") +"', '"+ session.getAttribute("Ano") +"', '"+ session.getAttribute("Ced") +"', '"+ request.getParameter("observacion") +"')";
stmt.execute(cadena);
stmt.close();
stmt=null;
out.print("<span class='Estilo7'>La información se almacenó satisfactoriamente...</span>");
response.sendRedirect("Siger_Recaudacion_7_9.jsp");
}
else {
out.print("<span class='Estilo7'>No se pudo almacenar la información debido a la existencia de algun campo vacio...</span>");
}
}
/*catch (NumberFormatException e0) {
out.println("<span class='Estilo7'>Error! No utilice COMAS (,), ni PUNTOS (.) para los numeros introducidos, en su lugar redondee el numero y vualva a intentar registrar la misma informacion tomando en cuenta esta salvedad!</span>");
} */
catch (SQLException e1) {
out.print("<span class='Estilo7'>Se presentó un error! es posible que este tratando de introducir un registro duplicado..." + e1.toString() + "</span>");
}
catch (Exception e){
out.print(e.toString());
}
finally {
}
%>
arielb:
Hola bienvenido, te manda algún error?, cual es el problema exactamente?
thecarfal:
--- Cita de: "juez" ---Hola bienvenido, te manda algún error?, cual es el problema exactamente?
--- Fin de la cita ---
SI ESTE ES EL ERROR AL COLOCAR EN LOS CAMPOS VALORES DECIMALES..
java.lang.NumberFormatException: For input string: "3,4"
3,4 FUE LO QUE COLOQUE EN EL CAMPO..
arielb:
Y es correcto que puedan escribir número decimales con coma para el programa que haces?
Si no lo es puedes restringuirlo con esta función pero sería a nivel del browser solamente
--- Código: Text ---//Esta función permite escribir números decimales y que el punto no se repita function decimalDosPuntos(evento,campo){ var tecla ; if ( navigator.appName.toUpperCase() != "NETSCAPE"){ tecla = evento.keyCode; }else{ tecla = evento.which; } if (tecla <= 13 ){ return false; }else if ( tecla >=48 && tecla <=57){ return true; }else if ( tecla == 46){ var cadena = document.getElementById(campo).value; if ( cadena.indexOf(".") != -1 ){ return false; }else{ return true; } }else{ return false; } }
y por si acaso debieras validar también del lado del servidor(esto es una buena práctica), utilizando la clase numberFormat y Locale
ya que el error es de asignar un valor String que contiene coma a un double
thecarfal:
si mi pana debo cargar decimales ya que el campo va a contener valor moneda y debo guardarlo en la bd tal cual ejemplo 5.300,53
Ya no encuentro que hacer muy agradecido..
Navegación
[#] Página Siguiente
Ir a la versión completa