O que significa a letra f em números do C++?

Tipos literais para precisão de dados.


O que significa a letra f em números do C++?

Eu tenho recebido bastante dúvidas dos incritos dos cursos e do canal. E alguns dos conceitos baseados nessas dúvidas iremos tratar aqui no cpp::daily, logo teremos postagens de dicas rápidas para documentarmos essas dúvidas .

Uma das dúvidas que recebi recentemente é o fato de encontrar a letra f acompanhado de números em C++: ex.: 3.69f.

Em linhas gerais podemos dizer que esse número é um tipo literal do float: 8.04f . Mas por que existe esse f se o tipo já é float? A resposta é porque por padrão todo número com .(ponto) o C e C++ tratam como double, logo, precisamos tornar o tipo float explícito.

Vamos à um exemplo. Suponhamos que você deseja testar o número pi:

#include <iostream>

int main(){
  const float pi = 3.14;
  std::cout << ( pi == 3.14 ? "É igual" : "Não é igual" ) << '\n';
  return 0;
}

A princípio você diria que a saída desse código seria que É igual , mas teste e verás que a saída será: Não é igual .

Agora se adicionarmos o f: const float pi = 3.14f; ainda não seria igual, se mantermos a condição sem o f.

Mas se adicionarmos o f na condição, seria igual:

#include <iostream>

int main(){
  const float pi = 3.14;
  std::cout << ( pi == 3.14f ? "É igual" : "Não é igual" ) << '\n';
  return 0;
}

Ou em ambos, que evita ainda mais “erro humano”:

#include <iostream>

int main(){
  const float pi = 3.14f;
  std::cout << ( pi == 3.14f ? "É igual" : "Não é igual" ) << '\n';
  return 0;
}

Alternativamente você também pode usar o F maiúsculo que funciona da mesma forma.

É altamente recomendável você usar assim em todos os casos em que a precisão é importante, como games, por exemplo.

Existem também dados literais para outros tipos: long(L ou l), unsigned(U ou u), long unsigned(Ul ou ul), long long(LL ou ll) .

Por hoje é só, são pequenas doses diárias que farão sempre nos manter antenado com o C++.

Acompanhe o cpp::daily.


cppdaily cpp


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!