Sou novo em java, estou fazendo uma espécie de folha de pagamento e tive um erro

5 respostas
L

Olá pessoal, estou no primeiro semestre do curso, acho que estou mais ou menos, mas ainda empaco em alguns detalhes.

import javax.swing.JOptionPane;

class folha_pagamento
        
{
    public static void main (String args[])
    
    {
        double sal_min, vlr_por_dep, vlr_por_he, qtd_he, qtd_sal, qtd_dep, sal_base, vlr_dep, vlr_he, sal_bruto, desc_inss, desc_irrf; 
        String ne, nf;
        sal_min = 545;
        
        vlr_por_dep = Double.parseDouble("Digite o valor a ser acrescentado por dependente");
        vlr_por_he = Double.parseDouble("Digite o valor a ser acrescentado por hora extra trabalhada");
        qtd_sal = Double.parseDouble("Digite a quantidade de salários que o funcionário recebe");
        sal_base = sal_min * qtd_sal;
        qtd_dep = Double.parseDouble("Digite a quantidade de dependentes que o funcionário tem");
        qtd_he = Double.parseDouble("Digite a quantidade de horas extras trabalhadas");
        ne = JOptionPane.showInputDialog("Digite o nome da empresa");
        nf = JOptionPane.showInputDialog("Digite o nome do funcionário");
        vlr_dep = vlr_por_dep * qtd_dep;
        vlr_he = vlr_por_he * qtd_he;
        sal_bruto = sal_base + vlr_dep + vlr_he;
        JOptionPane.showMessageDialog(null, "Teste" +sal_bruto);
    }
}

ainda não acabei, mas tenho o costume de ficar compliando de tempos em tempos.

o erro que ele retorna é o seguinte.

init:

deps-jar:

Compiling 1 source file to C:\Documents and Settings\Polaco\xxxx\build\classes

compile-single:

run-single:

Exception in thread main java.lang.NumberFormatException: For input string: Digite o valor a ser acrescentado por dependente

at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)

at java.lang.Double.parseDouble(Double.java:510)

at folha_pagamento.main(folha_pagamento.java:13)

Java Result: 1

BUILD SUCCESSFUL (total time: 1 second)

Obrigado desde já!

5 Respostas

drsmachado

Duas coisas:

Exception in thread "main" java.lang.NumberFormatException: For input string: "Digite o valor a ser acrescentado por dependente"

Esse erro se dá por isto

vlr_por_dep = Double.parseDouble("Digite o valor a ser acrescentado por dependente");

Não faltou nada aqui não?
Você importa o JOptionPane na chamada import, mas não usa o showInputDialog por quê?

vlr_por_dep = Double.parseDouble(JOptionPane.showInputDialog("Digite o valor a ser acrescentado por dependente"));

Testa aí.

Rodrigo_Sasaki

amigo o método que você está usando é um conversor, ele converte para double o valor que recebe como parâmetro

exemplo

Double.parseDouble("35.387");

note que estou mandando uma string, porém ele irá me retornar um double de valor 35.387

acho que o que você quer é usar o inputMessageDialog, para receber um valor e depois convertê-lo para double

mais ou menos assim

double numero = Double.parseDouble(JOptionPane.inputMessageDialog("Digite o valor a ser acrescentado por dependente"));

assim ele irá abrir uma mensagem com o texto “Digite o valor a ser acrescentado por dependente”.
o valor que o usuário escrever será convertido em double e atribuído a variável numero.

acho que é mais ou menos assim.

espero ter ajudado

Edit: opa… desculpa aí drsmachado postamos quase na mesma hora hehe, não vi que você ja tinha postado…

W

O problema eh que vc esta tendo converter strings para double usando varios Double.parserDouble.

vlr_por_dep = Double.parseDouble(“Digite o valor a ser acrescentado por dependente”);

O que vc queria fazer era ler uma entrada do teclado no console nao eh ?

Se for isso, da uma olhada nesse exemplo:

http://www.java2s.com/Code/Java/Development-Class/Readinputfromconsole.htm

//Daniel

L

baaah que viagem cara, foi mal aí, sabe como é, a gente começa e ainda não tem toda aquela lógica, eu fiz como tudo fosse uma string.

valeu aí povo.

prometo não dar mais vexames assim. :oops:

drsmachado

windsofhell:

O problema eh que vc esta tendo converter strings para double usando varios Double.parserDouble.

vlr_por_dep = Double.parseDouble(“Digite o valor a ser acrescentado por dependente”);

O que vc queria fazer era ler uma entrada do teclado no console nao eh ?

Se for isso, da uma olhada nesse exemplo:

http://www.java2s.com/Code/Java/Development-Class/Readinputfromconsole.htm

//Daniel

Ele queria o popup do JOptionPane.showInputDialog. Erro comum pra quem começa.
Só observe o import dele.

Criado 19 de maio de 2011
Ultima resposta 19 de mai. de 2011
Respostas 5
Participantes 4