Erro ao tentar inserir float (ou double) no sql [RESOLVIDO]

5 respostas
D

Boa tarde! Estou criando um sisteminha para uma ONG mas me deparei com um errinho que não estou conseguindo resolver… alguém pode me ajudar?

Segue o codigo abaixo (se precisar de mais informações, me avisem q posto)

private void btnSalvar1MouseClicked(java.awt.event.MouseEvent evt) {                                        
        Connection con = Conexao.abrirConexao();
        RFePSBean rfpsb = new RFePSBean();
        RFePSDAO rfpsd = new RFePSDAO(con);

        rfpsb.setId(this.id);
        rfpsb.setQtd_p_trab(Integer.parseInt(this.txtQtd_p_trab.getText()));
        rfpsb.setCtps(Integer.parseInt(this.txtCtps.getText()));
        rfpsb.setAutonomos(Integer.parseInt(this.txtAutonomos.getText()));
        rfpsb.setRenda_total(Float.parseFloat(this.txtRendaTotal.getText()));
        rfpsb.setPensao_ali(this.cxPensao_ali.isSelected());
        rfpsb.setPrev_social(this.cxPrevidencia_soc.isSelected());
        rfpsb.setBolsa_fam(this.cxBolsa_fam.isSelected());
        rfpsb.setPas(this.cxPAS.isSelected());
        rfpsb.setPeti(this.cxPETI.isSelected());
        rfpsb.setAux_doenca(this.cxAuxilio_doe.isSelected());
        rfpsb.setAposentadoria(this.cxAposentadoria.isSelected());
        rfpsb.setSeguro_des(this.cxSeguro_des.isSelected());
        rfpsb.setAux_mat(this.cxAux_Maternidade.isSelected());
        rfpsb.setBpc(this.cxBPC.isSelected());
        rfpsb.setPasse_liv(this.cxPasse_liv.isSelected());
        this.lblMensagem.setText(rfpsd.inserir(rfpsb));
        Conexao.fecharConexao(con);
        
        new FrameSaude(this.id).setVisible(true);
        
        this.dispose();
        
        
    }

Gera o erro seguinte:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "2.000,00"
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
	at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
	at java.lang.Float.parseFloat(Float.java:451)
	at entidades.FrameRFePS.btnSalvar1MouseClicked(FrameRFePS.java:357)
	at entidades.FrameRFePS.access$100(FrameRFePS.java:20)
	at entidades.FrameRFePS$3.mouseClicked(FrameRFePS.java:262)
	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
	at java.awt.Component.processMouseEvent(Component.java:6530)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6292)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4883)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4542)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2739)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:719)
	at java.awt.EventQueue$4.run(EventQueue.java:717)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Agradeço desde já!!

5 Respostas

michetti

Se eu não me engano o mysql não aceita dados como 2.000,00. Creio que para adicionar no banco teria que ser assim 2000,00

D

Pode ser, mas de acordo com o erro, me parece que ele ocorre antes de tentar inserir o dado no banco, acho que na hora da conversão da string para o float. Assim que eu chegar em casa vou testare posto o resultado. Obrigado.

Polverini

usa BigDecimal ao invés de float para valores monetários.

D

Hehe eu nem sabia que existia esse tipo :stuck_out_tongue:
Valeu, irei tentar tb.

D

Modifiquei alguns tipos de variáveis no meu programa e BD, o que resolveu o problema para mim.

Obrigado a todos que responderam e tentaram ajudar! :slight_smile:

Criado 15 de julho de 2014
Ultima resposta 21 de jul. de 2014
Respostas 5
Participantes 3