Usando float

Pessoal, estou há algum tempo sem usar java e perdi o jeito.
Quando compilo a classe abaixo dá erro de perda de precisão.
possible loss of precision
O que está errado?

[code]
public class Valor {

public float proximoValor (float valorInicial){
float valor = valorInicial + 1.5;
return valor;
}

}
[/code] :oops:

Desculpem não ter pesquisado antes. A resposta está no próprio guj. É preciso fazer um CAST, conforme abaixo:

public class Valor {

	public float proximoValor (float valorInicial){
	float valor = (float)(valorInicial + 0.5);
	return valor;
	}
}

Olá,
só uma dica… se você precisar de mais precisão deverá utilizar double ou BigDecimal (para valores monetários é aconselhável o BigDecimal).

Att.

O problema é que o java ve esse valor de 1.5 como um double cuja precisão é maior que um float.
Você pode fazer o cast ou indicar que esse valor não é um double, mas sim um float, escrevendo um f depois do número, ou seja, 1.5f

[code]public class Valor {

public float proximoValor (float valorInicial){
float valor = valorInicial + 1.5f;
return valor;
}

}
[/code]

ok?

Em 99,95% dos casos, é melhor usar double que float.
a) Em um processador normal (desktop/notebook/netbook), calcular com double leva exatamente o mesmo tempo que com float
b) float é simplesmente impreciso demais para ser usado em aplicações normais (especialmente com dinheiro!)

De acordo com a Sun, o problema não é tempo, é questão de memória mesmo.

Primitive Data Types

se vc quer maior precisão, não é bom usar float nem double…
tem o BigDecimal(q ja foi citado acima) e o Decimal Formater…
vlw

public class Valor {

public float proximoValor (float valorInicial){  
float valor = valorInicial + [b]0.5f[/b];  
return valor;  
}  

}

na verdade se você colocar 1.5f não vai precisar fazer o cast, o java vai entender que o 1.5 se trata de um float.