manipulação de variáveis inteiras e de ponto flutuante
- o prof começa explicando sobre as variáveis inteiras e sobre ponto flutuante, isso tudo eu já sei, mas tem motivo pela explicação:
- a unica diferença é a divisão:
- se a divisão não for exata, não for um número inteiro, ela vai gerar um número decimal. por exemplo, 10 dividido por 3 daria um número decimal. se ela for rodada como um número inteiro, ela vira só "3" e não o normal, que seria "3,333333". ou seja, ele seria abreviado, cortado. só mostraria a parte inteira, isso não é adequado.
- pra evitar o problema acima, é bom usar variáveis de ponto flutuante (float e double)
nesses exemplos o professor usou TUDO inteiro e TUDO flutuante. mas agora vem a segunda parte, onde talvez você tenha que trabalhar com variáveis misturadas, seja inteira com float, vice versa, ou até outras variáveis tipo char
conversão entre tipos de dados
às vezes tu tem que converter um tipo de dado em outro pra fazer as operações direitinho, por exemplo às vezes tem que somar um inteiro com um float, e dá pra fazer isso de duas maneiras, conversão implícita e conversão explicita
conversão implícita
o próprio PC converte pra você automaticamente quando você mistura tipos de dados diferente
como pode ver aqui nessa imagem, a variável A é um inteiro e a variável B é um float, e o resultado é um float. então o pc sozinho vai automaticamente converter o inteiro de inteiro pra floatmas isso também vem com riscos, a conversão implícita é útil mas o PC fazer o bagui automaticamente pode dar problema.
- pode ter perda de dados ou perda de precisão
- tipo, se ele converter um float pra inteiro, a parte decimal será perdida, como já vimos que ele faz
- se você não souber que essa conversão tá rolando, tu vai ficar confuso, e pode levar a comportamentos inesperados no seu programa
conversão explícita
pra evitar problemas com a conversão implícita, melhor usar a conversão explícita. é uma conversão feita usando operadores de casting pra forçar a conversão de um tipo de dado pra outro... (ou seja, é só usar uns parenteses)
como pode ver, antes do resultado ali tem um (float). é isso. se você colocar esse (float) usando casting, o resultado dessa divisão vai dar "3.33" direitinho mas se você tirar, vai ficar "3.00". forçando a mudança e não causando problema nenhum que a conversão implícita pode causar.
dicas gerais
algumas dicas pra tu realizar operações sem problema
- verifique os tipos de dados ao realizar essas operações, pra evitar resultados inesperados
- "tô fazendo int com int, float com float" = de boas
- "tô trabalhando com variáveis diferentes" = hora de usar o casting
- use casting quando necessário
- cuidado com a precisão. lembre que float ainda podem ter alguns erros de precisão. use double pra ter precisão máxima
Nenhum comentário:
Postar um comentário