Variaveis float e int

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() );

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:

[code]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 );
}

}[/code]

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

Pessoal,

Obrigado pela ajuda, funcionou bem esses esquemas.

Obrigado mesmo