O float tipo em Python representa o número de ponto flutuante. Float é usado para representar números reais e é escrito com um ponto decimal dividindo as partes inteiras e fracionárias. Por exemplo, 97,98, 32,3 + e18, -32,54e100 são todos números de ponto flutuante.

Os valores flutuantes do Python são representados como valores de precisão dupla de 64 bits. O valor máximo que qualquer número de ponto flutuante pode ter é de aproximadamente 1,8 x 10 308 . Qualquer número maior do que esse será indicado pela string inf em Python.

  
print(1.7e308) 
print(1.82e308) 

Resultado:

1.7e + 308
inf

Os números de ponto flutuante são representados no hardware do computador como frações de base 2 (binárias). Por exemplo, a fração decimal 0,125 tem valor 1/10 + 2/100 + 5/1000, e da mesma forma a fração binária 0,001 tem valor 0/2 + 0/4 + 1/8. Essas duas frações têm valores idênticos, a única diferença real é que a primeira é escrita em notação fracionária de base 10 e a segunda na base 2.
Infelizmente, a maioria das frações decimais não pode ser representada exatamente como frações binárias. Uma conseqüência é que, em geral, os números de ponto flutuante decimais inseridos são aproximados apenas pelos números de ponto flutuante binários realmente armazenados na máquina.

O float tipo implementa a numbers.Realclasse base abstrata. Retorna uma expressão que é convertida em número de ponto flutuante. float também tem os seguintes métodos adicionais:



float.as_integer_ratio(): Retorna um par de inteiros cuja proporção é exatamente igual ao float real com um denominador positivo. No caso de infinitos, ele levanta erro de estouro e erros de valor em Não é um número (NaNs).

def frac(d): 
      
    
    b = d.as_integer_ratio()  
      
    return 
if __name__=='__main__': 
    b = frac(3.5
    print(b[0], "/", b[1]) 

Resultado:

7/2

 
float.is_integer(): Retorna True caso a instância float seja finita com valor integral, senão, False.

def booln(): 
      
    
    print((-5.0).is_integer()) 
    print((4.8).is_integer()) 
    print(float.is_integer(275.0)) 
if __name__=='__main__': 
    booln() 

Resultado:

Verdade
Falso
Verdade

 
float.hex(): Retorna uma representação de um número de ponto flutuante como uma string hexadecimal.

def frac(a):  
      
    
    a = float.hex(35.0) 
      
    return 
if __name__=='__main__': 
    b = frac(35.0
    print(b) 

Resultado:

'0x1.1800000000000p + 5'

 
float.fromhex (s): Retorna o float representado por uma string hexadecimal s. String s pode ter espaços em branco à esquerda e à direita.

def frac(a): 
      
    
    a = float.fromhex('0x1.1800000000000p+5') 
      
    return a 
      
if __name__=='__main__': 
    b = frac('0x1.1800000000000p+5'
    print(b) 

Resultado:

35,0

Nota : float.hex() é um método de instância, mas float.fromhex() é um método de classe.