Por que ele nao quer dividir e nem operar um Double!

5 respostas
C
Ola pessoal, estou com um probleminha aqui, estou tentando compilar essa aplicacao mas nao consigo compilar, ele da erro nas operacoes com double!!! Sera que alguem pode me dizer o que esta acontecendo!!! Ai vai o codigo:
//Exercício 4.14

/* Aplicativo que determina o salário bruto de 3 funcionários e
   adiciona as horas extras que são 50% da hora do funcionário
   que trabalha fixas 40 por dia ainda exibe o salário bruto	*/

import javax.swing.JOptionPane;
import java.text.DecimalFormat;

public class HoraExtra {
  public static void main( String[] args ) {

	String ent1, ent2, ent3, enth1, enth2, enth3;
	int hor1, hor2, hor3, subtracao1, subtracao2, subtracao3, fun1, fun2, fun3, hora = 40;
	Double extra1, extra2, extra3, calculo1, calculo2, calculo3, 
	parcial1, parcial2, parcial3, bruto1, bruto2, bruto3;

	ent1 = JOptionPane.showInputDialog( " Digite o salário fixo do funcionário 1 " );
	ent2 = JOptionPane.showInputDialog( " Digite o salário fixo do funcionário 2 " );
	ent3 = JOptionPane.showInputDialog( " Digite o salário fixo do funcionário 3 " );
	
	enth1 = JOptionPane.showInputDialog( " Digite o número total de horas trabalhadas " );
	enth2 = JOptionPane.showInputDialog( " Digite o número total de horas trabalhadas " );
	enth3 = JOptionPane.showInputDialog( " Digite o número total de horas trabalhadas " );

	fun1 = Double.parseDouble( ent1 );
	fun2 = Double.parseDouble( ent2 );
	fun3 = Double.parseDouble( ent3 );

	hor1 = Integer.parseInt( enth1 );
	hor2 = Integer.parseInt( enth2 );
	hor3 = Integer.parseInt( enth3 );

	subtracao1 = hor1 - hora;	
	subtracao2 = hor2 - hora;
	subtracao3 = hor3 - hora;	

	extra1 = (double)hor1 / hora;
	extra2 = (double)hor2 / hora;
	extra3 = (double)hor3 / hora;
	
	parcial1 = extra1 * subtracao1;
	parcial2 = extra2 * subtracao2;
	parcial3 = extra3 * subtracao3;
	
	bruto1 = parcial1 + fun1;
	bruto2 = parcial2 + fun2;
	bruto3 = parcial3 + fun3;

	DecimalFormat doisDigitos = new DecimalFormat( " 0.00 " );
	
	JOptionPane.showMessageDialog( null,
	  " O Salario será R$ " + doisDigitos.format(bruto1), " Salário Bruto do Funcionário 1 ",
	  JOptionPane.INFORMATION_MESSAGE );

	JOptionPane.showMessageDialog( null,
	  " O Salario será R$ " + doisDigitos.format(bruto2), " Salário Bruto do Funcionário 2 ",
	  JOptionPane.INFORMATION_MESSAGE );

	JOptionPane.showMessageDialog( null,
	  " O Salario será R$ " + doisDigitos.format(bruto3), " Salário Bruto do Funcionário 3 ",
	  JOptionPane.INFORMATION_MESSAGE );

  }

}

Se alguem poder me ajudar??

Abracao e te +

5 Respostas

sergiolopes

vc declara variaveis como int e depois tenta jogar um valor double nelas…

int fun1, fun2, fun3;
...
fun1 = Double.parseDouble( ent1 );
fun2 = Double.parseDouble( ent2 );
fun3 = Double.parseDouble( ent3 );
C

So que inves de ter o trabalho de converter a String em Int pra depois converter o int em Double eu ja converto a String em Double!!!

Tenta executar o meu codigo pra vc ver o q esta acontecendo!!

Abracao e te++++

sergiolopes

nem compila… por causa dos erros q falei…

Daniel_Takabayashi

Caro amigo,

1º Na hora de declarar as variaveis vc esta usando um wrapper em vez de um tipo primitivo…(troque a palavra Double por double)…

2º Depois de fazer o calculo e a converção tenta atribuir a váriaveis do tipo int valores flutuantes (func1 = Duble…), aqui existem inumeras soluções duas delas são ou vc faz o cast explicito (func1 = (double) Double.parse…) ou vc declara as variaves (func1, func2 e func3) como double…

falow :wink:

C

Daniel Takabayashi
Foi um descuido meu, eu nem reparei que a variavel tinha que ser declarada com minusculos.
Brigadao pela ajuda!!!

Criado 25 de março de 2004
Ultima resposta 26 de mar. de 2004
Respostas 5
Participantes 3