Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Code Complete

12. Tipos de dados fundamentais

Sem números mágicos, cuidado com divisão, overflow, comparação de floats e limites de arrays.

Exemplo de 0.1 + 0.2 diferente de 0.3 e um número mágico trocado por constante nomeada
Ponto flutuante não é exato.

Resumo

Perguntas-chave

responda de cabeça, depois abra
Por que não comparar floats com ==?
Porque erros de arredondamento fazem valores matematicamente iguais terem representações diferentes; compare com uma tolerância.
Como representar valores monetários?
Com inteiros (em centavos), tipos decimais/BCD ou maior precisão, nunca com float simples.
Por que reservar o primeiro valor de uma enumeração como inválido?
Para detectar variáveis não inicializadas, que costumam valer 0.

Exercícios de fixação

0/5 respondidas
1.
if (0.1 + 0.2 == 0.3) dá falso em muitas linguagens. O que o capítulo recomenda?
2.
if (status == 7) aparece em vários lugares do código. O que fazer?
3.
(a * b) / c estoura mesmo quando o resultado final caberia no tipo inteiro. Qual o problema?
4.
Somar 0,0001 a 1.000.000.000 em ponto flutuante de precisão simples tende a:
5.
Numa enumeração Cor { Invalida, Vermelho, Verde, Azul }, por que Invalida primeiro?
Seu progresso fica salvo neste navegador.