Como faço para verificar se um número tem ponto flutuante???
1.300
29.46
-1.27
937.24
Até onde sei, ponto flutuante são esses pontos finais, que servem pra representar números com casas decimais, positivo ou negativo.
Os números depois da vírgula (ou ponto) num número real (float/double) são geralmente chamados de casas decimais.
Não sei se é o método mais eficiente, mas um jeito simples seria subtrair do número sua parte inteira (obtida com Math.floor ou Math.ceil), e verificar se o que sobra é igual a zero. Algo assim:
double numero = 10.10;
double resto = numero - Math.floor(numero);
if (resto != 0f){
//numero tem parte decimal
}
Exemplo rodando: https://ideone.com/JOOt3a
Abraço.
1 curtida
Exemplo:
public static void main(String[] args) {
double[] numeros = new double[] {
0,
0.0,
0.01,
5.5,
4.98,
4.00,
7,
7.0,
9.99,
10
};
for (double numero : numeros) {
String flutuante = hasFloatingPoint(numero) ? "sim" : "não";
System.out.printf("%.2f : %s%n", numero, flutuante);
}
}
static boolean hasFloatingPoint(double number) {
return number - ((long) number) != 0;
}
1 curtida
double numero = 5.5;
if(numero != (int) numero)
{
System.out.println("Tem ponto flutuante");
}