Introduzindo Operador Lógico

4 respostas
F

Olá pessoal!

Não consigo introduzir OPERADOR no meio de uma linha de comando, alguém poderia me dar um exemplo para clarear?

Vou fazer um exemplo só para melhor compreensão:

public static float ConversaoConvencional(float fNumero){

	if(fNumero <= 0){
		System.out.println("NÚMERO INVÁLIDO");

	} else {
		String strOper = (bSelo==true) ? "*":"/";

		while(fNumero >= 1){
			fResultado += fResultado + strOper.substring(0) + fNumero;
			fNumero--;
		}
	}
	return fResultado;
}

ERROR:

[color="red"]java.lang.NumberFormatException: For input string: "*"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:518)
at Conversao.ConversaoConvencional(Conversao.java:26)
at Conversao.main(Conversao.java:84)
Exception in thread "main" [/color]

Tentei de outras formas, mas não obtive sucesso. Alguém poderia me ajudar?

Abraços,

Fábio Heleno.

4 Respostas

L

fResultado é um numero?!?!

O erro é:
Você não pode formatar a string *]

Falo

L

e outro erro…eu acho

não é:

fResultado += fResultado + strOper.substring(0) + fNumero;

acho que é:

fResultado += strOper.substring(0) + fNumero;  //Da erro pq o strOper é uma string!!

Falo

F

Sim, fResultado e fNumero são variáveis do tipo FLOAT.

Preciso que no meio do processo matemático, controlar de acordo com a necessidade, o operador a se usar.

No caso todas as variáveis são do tipo FLOAT e somente a variável com os operadores é do tipo STRING, ou poderia ser também CHAR, tanto faz.

Não tenho conseguido fazer isso funcionar, já que operadores não são valores inteiros.

M

como já disseram, o erro é pq strOper é uma string.

fResultado += strOper.substring(0) + fNumero;
quando vc usa o operador + com uma string e um numero, o numero é convertido para string e ambas são concatenadas, ou seja, strOper.substring(0) + fNumero retorna uma string, a qual vc está tentando atribuir a um float, fResultado
tente fazer isso:

if strOper.equals("*")
fResultado += fResultado*fNumero;
else
fResultado += fResultado/fNumero;
Criado 15 de outubro de 2004
Ultima resposta 16 de out. de 2004
Respostas 4
Participantes 3