Como verificar se um número é flutuante em Python


Melhor resposta

Em Python, você pode saber o tipo de conjunto de dados em qualquer programa, usando o type () .

Se um número for flutuante, o código imprimirá o tipo de qualquer maneira. Um exemplo:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

A saída mostrará naturalmente o tipo de dados de cada um, com o valor na variável c sendo float. Portanto, esta é a maneira mais fácil e rápida de saber se um tipo de dados é flutuante.

Espero isso ajuda 🙂

Resposta

Depende do idioma. Algumas linguagens (como JavaScript) têm um operador typeof que você pode usar para saber a diferença. Embora em JavaScript, isso não vá ajudá-lo, já que não existe um número inteiro em JavaScript. JavaScript tem um tipo de número unificado que encapsula inteiros e flutuantes, então as formas de verificar isso incluem

n - Math.floor(n) > 0

// 3.14 - 3.00 = 0.14. 0.14 > 0.00

n.toString().indexOf(".") == -1

// indexOf() returns -1 when it can’t find the given substring

Se você estiver usando C (ou uma linguagem que tenha um sistema de tipo nominal estático), poderá fazer algo semelhante:

(n - (int) n) > 0

O que acontece aqui é que o operador (int) converte seu operando para forçá-lo a ser um inteiro. isso “corta” a parte decimal, tendo assim o mesmo efeito do Math.floor do JavaScript.

Há uma ressalva, no entanto. Às vezes, pequenas diferenças são muito pequenas para o operador de igualdade. 1 == 0.9999999999999999 é falso, mas 1 == 0.99999999999999999 é verdadeiro. Em C, por exemplo, você pode realmente ter que substituir > 0 por > FLT\_EPSILON e #include . FLT\_EPSILON é uma constante que representa o menor float representável. Você pode usá-lo ao comparar dois flutuadores e ter certeza de que eles não serão comparados erroneamente. Você faz isso subtraindo-os e verificando se a diferença é maior que (“diferente”) ou menor que ou igual a (“igual”) FLT\_EPSILON.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *