Por que a multiplicação e divisão não funcionam no Java

5 respostas
P

Pessoal desculpem a minha persistencia aqui mas é que ainda tem umas coisas básica em Java que preciso ficar bom!! Uma delas é o calculo de multiplicação e divisão!!! Ora, subtração e adição funcionam perfeitamente, agora na minha função de multiplicação e divisão não!!! Vejam a função:

private void funMult() { Mem = Mem * Double.parseDouble(txt_visor.getText()) ; txt_visor.setText(String.valueOf(Mem)); }

E

private void funDivD() { Mem = Mem / Double.parseDouble(txt_visor.getText()) ; txt_visor.setText(String.valueOf(Mem)); }

Na multiplicação no txt_visor aparece 0.0 e não calcula nada, já na divisão é mais estranho ainda, aparece a palavra Infinity!!! Estranho calculos sairem assim em uma linguagem, nunca tive problema com calculo em nenhum linguagem, somente no Java :cry:

agradeço a ajkuda!!

Obrigado

5 Respostas

_

Olá

Tua variável Men é do tipo double :?:

Tenta fazer:

men *= Double.parseDouble(txt_visor.getText());

não sei se dá na mesma, mas já aconteceu comigo e quando coloquei assim deu certo…

Mais uma coisinha: variáveis, por padrão deve estar todo em letra minúsculas (apenas segundas iniciais maiusculas), logo Men deveria ser men

Só mais uma coisinha: Teus métodes estão com os mesmo nomes, não sei se está assim no teu código ou só aqui, mas pelo menos to avisando eheheh

Espero ter ajudado

()'s

P

Oo rapaz você me fez lembrar desse esquema de receber e calcular ao mesmo tempo, porém não deu certo!! A minha variavel é do tipo Double, e o estranho é que ainda continua aparecendo o 0.0 quando eu clico no botão de multiplicar!!! Queria terminar essa calculadora agora, mas isso ta me travando ainda!!!

S

cara... acho que o problema deve estar no txt_divisor....

ele deve tar sempre setando como "0" (valor default quando não se tem nenhum valor setado) infinity aparece por que a divisão por "0" em java não da um erro e sim infinito.

por isso suspeito que ele não estaja encontrando nenhum valor real neste teu txt_divisor....

para testar isso substitui ele por um valor qualquer... e testa a multiplicaçao e divisão. Se tudo ocorrer bem vc terá certeza que o defeito esta nele... ai vc tenta achar o que tem de errado.

esse txt_divisor é um textfild?

pq vc não tenta:

Victor
mem = mem * (Double)txt_divisor.gettext()

valeu
[]'s Victor

M

eu não aconselho a usar double para cálculos precisos… use BigDecimal

P

Ah pessoal eu consegui aqui!!! Era essa lógica mesmo, mas não era com o txt_visor porque ele fica vazio, mas sim com a variavel Mem!!! Toda vez que se iniciava a função a varivel ficava setada como 0, dae eu fiz um if assim:

if (Mem <= 0) Mem = 1; else Mem = Mem;

Como qualquer número divido por 0 é 0 então ele ficava aquele zero quando eu apertava o botão de multiplicar, agora não, a variavel Mem recebe ela mesma ou multiplicada por 1 e assim não tem erro mais!! Com a divisão foi exatamente a mesma coisa!!!

Bom eu tava achando estranho porque toda linguagem é perfeita em termos de calculo, e não era problema no Java em sim na validação da variavel!!! Nada que uns ifs da vida resolvam hehe!!

Valeu povo

Inteh

Pilantra :cool:

Criado 20 de janeiro de 2005
Ultima resposta 21 de jan. de 2005
Respostas 5
Participantes 4