A linguagem C++ fornece vários tipos de variáveis, as quais precisam ser declaradas e atribuídas a um tipo. Nesta linguagem, a variável destinada a um número real exato e que ocupa menos memória do que um double, porém tem menos precisão e variação, é:
- A)char.
Errada: char armazena um único caractere, não um número real.
- B)float.
Certa: float é o tipo de ponto flutuante que ocupa menos memória que double, mas com menor precisão e faixa.
- C)long int.
Errada: long int é um tipo inteiro, usado para valores sem casas decimais.
- D)wchar_t.
Errada: wchar_t é voltado a caracteres largos, não a números reais.
Gabarito: B
Em C++, cada tipo de dado ocupa um tamanho e entrega um nível diferente de precisão. Quando a questão fala em "número real" com menos memória que um double, mas também com menos precisão e faixa de valores, ela está apontando para o tipo usado justamente para economizar espaço em relação ao double: o float. É o clássico troca-ganha da programação: você gasta menos memória, mas aceita uma representação menos precisa para números decimais. Na prática, o float costuma ser usado quando você não precisa da precisão maior do double, como em cálculos aproximados, gráficos ou medições mais simples. Já o double é preferido quando a precisão importa mais, porque trabalha com mais casas decimais e uma faixa maior de representação. Em prova, isso quase sempre aparece como contraste entre memória e precisão. As alternativas char, long int e wchar_t não representam números reais. Char é para caracteres, long int é inteiro de maior capacidade e wchar_t é para caractere largo. Então, se a banca descreve um real com menos memória e menos precisão que o double, ela está descrevendo um tipo de ponto flutuante mais enxuto. Resumo de concurso: real menor que double e menos preciso = float. É o tipo que a banca gosta de cobrar como o meio-termo entre economia de memória e precisão aceitável.