Como faço para verificar se um número tem ponto flutuante?

4 respostas
programaçãojava
T

Como faço para verificar se um número tem ponto flutuante???

4 Respostas

R

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.

T

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.

S

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;
}
M
double numero = 5.5;
		
if(numero != (int) numero)
{
	System.out.println("Tem ponto flutuante");
}
Criado 8 de junho de 2018
Ultima resposta 8 de jun. de 2018
Respostas 4
Participantes 5