Como saber se um numero esta em ponto flutuante?

Eu tenho o seguinte caso:

float num = "RECEBE QUALQUER NUMERO";

eu gostaria de saber assim, se ele recebesse numero inteiro tpw 5.0 ou 6.0 eu usaria a classe DecimalFormat para deixar assim: 5 ou 6, senao se fosse quebrado 5.21352 ou 6.123653 eu deixaria como esta.

Ex:

DecimalFormat df = new DecimalFormat("0");
if(num == !float){
    Systen.out.println(df.format(num));
}
else{
    Systen.out.println(num);
}

Obrigado pela ajuda, me deem exeplos de como fazer isto.

Melhor usar double, porque float tem muito problema de arredondamento. Você pode converter o valor para inteiro (tipo long) e fazer a diferença com o valor anterior, se maior que zero daí tem casas decimais.

[]'s

Ah eu tava analisando aqui e consegui chegar a uma conclusão aqui que funcionou da maneira que eu gostaria:

[code]
public String formataCasoDecimal(String d) {
String x = String.valueOf(calcs.getMemoria());
for (int i = 0; i < x.length(); i++) {
if (x.substring(i, i + 1).equals(".")) {
if (x.substring(i + 1, i + 2).equals("0")) {
d = df.format(calcs.getMemoria());
} else {
d = x;
}
break;
}
}
return d;
}

 System.out.println(String.valueOf(formataCasoDecimal(String.valueOf(num))));[/code]

Obs¹: Tanto double quanto float tem a msm dificuldade em arredondamento creio eu, e essa sua logica ai parece que é bem eficas mesmo.

Obs²: Adelar, você é de Cascavel-PR ??? Minha familia mora em Cascavel-PR, gosto mto desse lugar de onde sou natural. E como anda a vida de programador ai ?

Ao invés de comparar com zero poderia usar também um valor muito próximo de zero, daí evita prováveis erros de ponto flutuante… 0,0000001 por exemplo.
Aqui é um bom lugar para trabalhar :D… em qual cidade vc está?

double tem uma maior precisão que float, faz o teste:

[code]
public class Main {

public static void main(String[] args) {
	double a = .0;
	float b = .0f;

	for (int i = 0; i++ &lt; 25;) {
		System.out.println((a += 0.1) + &quot; - &quot; + (b += 0.1));
	}
}

}[/code]

E se for um número no valor de 5.0147? Vai apresentar 5?

Hmm, entendi, não sabia que o double tinha mais facilidade e precisão com ponto flutuante, obrigado por me darem estas dicas.

Eu estou em Taubaté-SP. :roll:

[quote]
E se for um número no valor de 5.0147? Vai apresentar 5? [/quote]

Tensooo, vou ter q revisar aqui e organizar para verificar todos os indices… ou melhor, ou utilisar o exemplo do colega ali em cima.