Olá meus leitores queridos. Esta é a primeira semana de julho, e resolvi fazer um post mega sobre o que mais os meus leitores imaginários perguntaram. Como ninguém pergunta nada, só fala “legal”, então não tem o que eu responder. Porém eu pensei: vou fazer um post sobre o que as pessoas perguntam pro tio Google.
A maior dúvida parece ser sobre ponto flutuante, ou, números quebrados.
O que são números quebrados?
Bom, lembra da época da escola? Apesar de que… deixa pra lá. Enfim, e a professora explicou sobre números Q? Números Racionais? Os números racionais são os obtidos através de uma razão (para mais detalhes vai um site de ensino fundamental mesmo XD http://pessoal.sercomtel.com.br/matematica/fundam/fracoes/racionais.htm ). Uma razão é uma divisão. Pense comigo: 1,5 nada mais é que 3 dividido por 2. Normalmente nós escrevemos os números racionais com um número seguido de vírgula e depois outro número ou de uma fração. Uma fração pode se transformar nesse negocio de número seguido de vírgula com outro número depois (não vamos entrar em detalhes matemáticos). Existem cálculos para transformar um número assim>>1,5 em uma fração 3/2. E para transformar o 3/2 em 1,5 é só dividir o 3 por 2.
Bom, sabendo o que para seres normais são os números racionais podemos continuar nosso estudo.
Muita gente chama os números racionais de números quebradinhos, talvez porque eles são quebrados mesmo.
Bom, mas para o computador eles não são “números quebrados”.
Em computação chamamos os números quebrados de ponto flutuante ou vírgula flutuante.
NOTA: Agora eu só vou dar uma por cima. Por enquanto não vamos falar do cálculo de ponto flutuante, certo?
Esses números são definidos por uma Mantissa que multiplica 2 elevado a um certo expoente. Em um ambiente de 32 bits (provavelmente o seu) o ponto flutuante consiste num bit de sinal, 8 bites de expoente e uma mantissa de 23 bits. O bit de sinal é zero para números positivos e 1 para números negativos. Por que um número de sinal? Oras, esqueceu que existem números acima do zero e números abaixo do zero? O campo expoente é 128 menos alguma coisa. Não se preocupe com isso, e lembre-se que esse número pode ser zero. O campo da mantissa é correspondente à parte fracionária do número Considera-se a mantissa entre o número 1 e 2 (existem infinitos aqui no mundo real).
Eu li um conteúdo legal feito por um professor da Universidade Católica de Brasília. Não sei se tenho autorização pra divulgá-lo… mas tava lá livre… na internet… Resolvi mostrar para vocês. Relaxem, o material é forte. Digo, muito bom e difícil pra quem é newbie como nós, meros mortais. Mas vale a pena dar uma olhada: http://www.ucb.br/prg/professores/gualeve/disciplinas/2006_1/ac1bcc/05_PtoFlutuante.pdf
Bom, voltando ao foco, você quer saber como declará-lo né?
Tem alguns tipos de ponto flutuante. Por hoje vamos falar do float e do double. O float é o que vamos costumar usar. Comporta valores desde 1.40239846e-46 até 3.40282347e+38. Muita coisa né? Lembre-se que o e-46 significa elevado a -46. Adivinha só o que significa e+38. Sim, além de comportar números quebradinhos ainda comporta números muito, mas muito grandes. Significa que se você quiser fazer contas com números grandes pode usar o float no lugar do int, e não só para números quebradinhos.
Um exemplo é que int cabe desde -2.147.483.647 até 2.147.483.648
Bom, o Double é quase igual, a diferença é que cabem muito mais números. Vai de 4.94065645841246544e-324 até 1.7976931348623157e+308. Nunca parei pra pensar como esse número é grande.
Mas por que então o float é mais usado que o Double se o double é maior? Essa é justamente a resposta: o Double é grande demais. Normalmente não precisamos de números tão grandes, e criar uma variável dessas faz o programa ficar mais pesado e lento. Como estamos só fazendo coisas simples nem dá muita diferença, mas quando você for fazer um programa grande vai fazer diferença sim. É por isso que o float é mais usado que o double.
Existem variações desses tipos de variáveis, mas fica pra outro dia.
Bem, agora considerações importantes: quando você cria uma variável int ela sempre vai mostrar números inteiros, e nunca números quebrados. Se você fizer um programa que divida 1 por 3 e o resultado for colocado em uma variável inteira você terá o resultado 1. A parte decimal é ignorada. Se você pegar essa variável resultado e dividir por 2 o resultado via ser 0. Sempre é ignorada a parte decimal.
Porém se você cria uma variável de ponto flutuante você pode mostrar tantos números inteiros como números decimais.
Contas são realizadas normalmente.
Bom, alguma dúvida é só falar. Ainda sinto que não respondi a todas as perguntas dos leitores imaginários pára-quedistas do Google.


