Variaveis float e int

3 respostas
Ricardo_Alexsander

Pessoal, minha dúvida é a seguinte:

declarei uma variaveis float, ai coloco uma delas pra receber um valor int dividido por 255, ai era pra dar um float, mais não funciona.

No primeiro System.out.println aparece: 0.0
No segundo System.out.println aparece: 255 (o valor correto)

A divisão era pra dar valores de 0 até 1 (ex. 0.5213) mais só aparece 0.0 ou 1.

float H, S, L;

	H = sliderHue.getValue() / 255;
	S = sliderSaturation.getValue() / 255;
	L = sliderLuminosity.getValue() / 255;
					
	System.out.println("Var" + S);
	System.out.println("Get" + sliderSaturation.getValue() );

3 Respostas

p5f8

Olá Ricardo Alexsander,

Faz assim... depois dos valores fixos 255 altere para 255f, é assim mesmo tudo colado, número com letra, o java entende. Abaixo um exemplo para você comparar com o seu código:

public class TesteFloat
{

	public static void main(String args[]) {
		
		float H, S, L;
		int valorInt255 = 255;
		int valorInt0 = 0;
		 
		 	H = valorInt255 / 255;
		 	S = valorInt0 / 255f;
		 	L = valorInt0 / 255f;
		 					
		 	System.out.println("S...........: " + S);
			System.out.println("H...........: " + H);
			System.out.println("L...........: " + L);
		 	System.out.println("valorInt255.: " + valorInt255 );
			System.out.println("valorInt0...: " + valorInt0 );
	}

}
jgbt

no java qualquer operação com inteiros sempre vai resultarum valor inteiro, mesmo que o resultado for um valor de ponto flutuante.
para obter o valor com casas decimais, vc precisa fazer um cast, ou trocar um dos valores para ponto flutuante.
ex:

float a = 5;
	float b = 2;
	float c = 5/2;
	System.out.println(c);

a saida vai ser 2.0.
se vc fizer cast:

float a = 5;
	float b = 2;
	float c = (float)5/2;
	System.out.println(c);

ou tornar um dos valores de ponto flutuante:

float a = 5;
	float b = 2;
	float c = 5/2f;
	System.out.println(c);

a saida vai ser 2.5.

[]'s

Ricardo_Alexsander

Pessoal,

Obrigado pela ajuda, funcionou bem esses esquemas.

Obrigado mesmo

Criado 2 de abril de 2005
Ultima resposta 3 de abr. de 2005
Respostas 3
Participantes 3