Programación General > JSP/Servlets

 problema al cargar datos decimales con jsp

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa