Trabalhando com Números de Ponto Flutuante
Deslize para mostrar o menu
Os números não terminam nos inteiros. Existem também os números de ponto flutuante. Em C++, utilizamos os tipos de dados float e double para armazená-los. Este capítulo abordará o tipo de dado float, enquanto o próximo tratará do tipo de dado double e suas distinções. Abaixo está a sintaxe para o uso de float:
float.h
1float num = 0.45;
Vamos analisar rapidamente como os números de ponto flutuante são armazenados na memória.
O tipo de dado float ocupa 4 bytes de memória, assim como um int. No entanto, converter esses números para código binário é muito mais complexo:
Aqui está um exemplo de como float num = 13.45 seria armazenado:
Não há problema se não compreender totalmente o que está acontecendo aqui. O mais importante é observar que a representação de um float é dividida em 3 partes:
-
o componente sinal é representado por um símbolo de mais (
+) ou menos (-). Indica se um número é positivo ou negativo; -
o componente expoente determina o intervalo que um número pode representar. Quanto maior o expoente, maior o intervalo de valores que pode ser representado. Para o tipo de dado
float, o expoente ocupa 1 byte (8 bits) de memória; -
o componente mantissa determina a precisão de um
float. Nem todos os números podem ser representados exatamente na memória, e a precisão de um número é definida pelo comprimento da mantissa. Para o tipo de dadofloat, o comprimento da mantissa é de 23 bits.
Como resultado, float possui precisão de 7 dígitos decimais e um intervalo de 1.2e-38 a 3.4e+38 (aplicável para números negativos e positivos). Portanto, na maioria das vezes, o intervalo não é um problema. Mas a precisão às vezes é.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo