Transformar horas em horas e minutos

Bom dia para todos,

Estou com o seguinte problema, tenho uma aplicação que em um dado momento me retorna um tempo em horas na forma de um float, como por exemplo 3.5 horas (3 horas e meia), gostaria de saber como posso fazer para converter estas horas para horas e minutos, como por exemplo de 3.5 para 3:30 já tentei com o que segue abaixo, mas os resultados não são confiáveis

    public String converteHora_Minuto(float valorFinalEmHoras){
        int inteiro = (int)valorFinalEmHoras;
        float decimal = valorFinalEmHoras-inteiro;
        int hora = inteiro;
        float minutoF = decimal*60;
        int minuto=(int)minutoF;
        String hora_minuto = hora+":"+minuto;
        return hora_minuto;
    }

Obrigado pela ajuda.

Tenta utilizando a classe Calendar. Aqui um exemplo:

float h = 3.5f;
Calendar cal = new GregorianCalendar();
		
int minutos = (int) (h * 60);

cal.clear(); // para limpar o campo hora
cal.set(Calendar.MINUTE, minutos);
	
System.out.println("hora: " + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("minuto: " + cal.get(Calendar.MINUTE));

Edit:

Você também pode exibir a hora e o minuto formatados assim:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
		
String horaFormatada = sdf.format(cal.getTime());
System.out.println(horaFormatada);

Recomendo o que o túlio colocou ai, mas pelo que eu entendi esse método de conversão que vc colocou esta correto, o que seria esse “não confiável”?

No caso, não confiável é pq se por exemplo informo uma hora que deveria me retornar 3:19 ele arredonda e retorna 3:20 e no caso da minha aplicação a precisão é necessária.

Não consegui usar muito bem as dicas acima, mas quebrei a cabeça um pouco e acabei resolvendo tudo com um simples while

public String converteHora_Minuto(float valorFinalEmHoras){ float tempoM= valorFinalEmHoras*60; int hora=0; int minutos=0; String hora_minutos="00:00"; while(tempoM>=60){ hora++; tempoM=tempoM-60; } minutos=(int)tempoM; hora_minutos = hora+":"+minutos; return hora_minutos; }

Seu método ta certo…não se preocupe!