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