Ao projetar um registro 'produto' com campo 'preco' para cálculos financeiros, qual tipo de dado reduz erros…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Classificar informações, agrupando-as em coleções (conjuntos) e associando cada coleção a um ‘tipo de dado’.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Ao projetar um registro 'produto' com campo 'preco' para cálculos financeiros, qual tipo de dado reduz erros de precisão: ponto flutuante ou inteiro (em centavos)?
- A) Inteiro normal (sem centavos)
- B) String
- C) Decimal com casas variáveis
- D) Inteiro em centavos
- E) Ponto flutuante
✅ Resposta correta: alternativa D
Resolução passo a passo
- Resolvendo por conta própria, o ponto flutuante (E) armazena números em base binária, e muitos valores decimais, como 0,1, não têm representação exata. Por isso, somas como 0,1 + 0,2 podem resultar em 0,30000000000000004 e os erros se acumulam em cálculos financeiros repetidos. Passo 2: Guardar o preço em centavos como inteiro (D) resolve o problema: R$ 10,50 vira 1050, e somas, subtrações e multiplicações por inteiros são exatas dentro da faixa de valores suportada. A conversão para reais é feita só na exibição. Passo 3: A alternativa A está errada porque um inteiro sem centavos não consegue representar R$ 10,50 sem perder a parte fracionária. A alternativa B está errada porque string guarda o texto, mas não permite cálculos aritméticos diretos sem conversão. A alternativa C está errada porque uma representação decimal de casas variáveis não fixa a escala monetária, o que a torna menos previsível do que centavos inteiros ou decimal de escala fixa. Passo 4: Conclusão: a resposta correta é a D, em concordância com o gabarito oficial.
💡 Dica: Considere as características dos tipos de dados em programação.
Alternativa por alternativa
Acredita que qualquer número inteiro elimina erros de precisão, sem perceber que descartar os centavos gera perda de valor real.
Imagina que guardar o preço como texto é a forma mais segura e legível, ignorando que não há cálculo aritmético direto sobre strings.
Entende que um tipo decimal, por ser 'decimal', sempre é exato e pode ter número de casas variável, sem perceber que a escala precisa ser fixa para evitar inconsistências monetárias.
Por que engana: Confundir o uso de ponto flutuante com inteiro em centavos, levando a erros de precisão em cálculos financeiros.
Representar valores monetários como inteiros (centavos) evita erros de arredondamento e imprecisão típicos de ponto flutuante em operações financeiras.
Assume que ponto flutuante é o tipo padrão para números com vírgula e, por isso, é adequado para dinheiro, sem considerar os erros de arredondamento da representação binária.
Raio-X da questão
tipos de dados
avaliacao
tipos de dados · cálculos financeiros
Revisar os tipos de dados e suas aplicações em programação.
Confundir o uso de ponto flutuante com inteiro em centavos, levando a erros de precisão em cálculos financeiros.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Uma máquina registradora precisa armazenar o preço de um produto. Para isso, o programador deve escolher um tipo de dado…
- Em um algoritmo que percorre uma matriz 'vendas', cada registro tem campo 'valor' monetário. Qual tipo de variável é…
- Ao projetar um registro para vendas em uma aplicação, qual tipo de variável é mais apropriado para armazenar o preço…
- Num sistema de pagamentos da cantina escolar, ao projetar variáveis para valores monetários, qual escolha evita erros de…
- Ao projetar um algoritmo que soma contribuições em dinheiro para o fundo escolar, por que é preferível representar os…
- Em um algoritmo que processa um fluxo de dados numérico, qual tipo de variável é mais apropriada para armazenar valores…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
