Conversões entre inteiros e ponto flutuante
Questões de precisão.
Conversões entre inteiros e ponto flutuante é uma aula grátis de C Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C Academy inclui 4 aulas no total.
Dois mundos dos números
C tem inteiros, que são exatos e não possuem fração, e números de ponto flutuante, que são aproximados e possuem fração. Converter entre eles altera a forma como um valor é armazenado.
#include <stdio.h>
int main(void) {
int i = 10;
double d = 10.5;
printf("%d %.1f\n", i, d);
return 0;
}Ampliando de int para double
A maioria dos valores int cabe exatamente em um double, portanto ampliá-los é seguro.
#include <stdio.h>
int main(void) {
int n = 1000;
double d = n;
printf("d = %.1f\n", d);
return 0;
}Reduzindo de double para int
Passar de double para int trunca em direção a zero e pode causar perda de informação.
#include <stdio.h>
int main(void) {
double d = 12.75;
int n = (int)d;
printf("n = %d\n", n);
return 0;
}Truncamento de números negativos
Truncar em direção a zero significa que -2.9 se torna -2, não -3.
#include <stdio.h>
int main(void) {
double d = -2.9;
int n = (int)d;
printf("n = %d\n", n);
return 0;
}Precisão de float versus double
float armazena cerca de 7 dígitos significativos; double, cerca de 15. Converter double para float causa perda de precisão.
#include <stdio.h>
int main(void) {
double d = 3.14159265358979;
float f = (float)d;
printf("%.5f\n", f);
return 0;
}De int grande para float
Um int muito grande pode não ser representável exatamente em um float, produzindo um resultado arredondado.
#include <stdio.h>
int main(void) {
int big = 16777217;
float f = (float)big;
printf("%.1f\n", f);
return 0;
}Arredondar versus truncar
Uma conversão explícita trunca. Para arredondar, adicione 0.5 primeiro, no caso de valores positivos, ou use funções da biblioteca.
#include <stdio.h>
int main(void) {
double d = 4.6;
int truncated = (int)d;
int rounded = (int)(d + 0.5);
printf("%d %d\n", truncated, rounded);
return 0;
}Cálculo de média
Calcular a média de inteiros exige uma divisão de ponto flutuante para preservar a fração.
#include <stdio.h>
int main(void) {
int sum = 7, count = 2;
double avg = (double)sum / count;
printf("avg = %.2f\n", avg);
return 0;
}Armadilha da igualdade de números de ponto flutuante
Como os números de ponto flutuante são aproximados, compará-los com == é arriscado. Compare-os dentro de uma pequena tolerância.
#include <stdio.h>
#include <math.h>
int main(void) {
double a = 0.1 + 0.2;
if (fabs(a - 0.3) < 1e-9)
printf("close enough\n");
return 0;
}Mistura em condições
Ao comparar um int com um double, o int é promovido, portanto a comparação acontece em ponto flutuante.
#include <stdio.h>
int main(void) {
int n = 3;
double d = 3.5;
if (n < d)
printf("3 < 3.5\n");
return 0;
}Escolhendo o tipo certo
Use inteiros para contagens e índices; use números de ponto flutuante para medições e proporções.
#include <stdio.h>
int main(void) {
int items = 4;
double pricePer = 2.5;
printf("total = %.2f\n", items * pricePer);
return 0;
}Verificação rápida
Teste sua compreensão das conversões entre inteiros e números de ponto flutuante.
Recapitulação: conversões entre inteiros e números de ponto flutuante
Você aprendeu como os números mudam entre os tipos.
- De int para double, o valor geralmente é ampliado com segurança
- De double para int, o valor é truncado em direção a zero
- float mantém menos dígitos que double
- Arredonde adicionando 0.5 ou usando funções da biblioteca
- Evite
==com números de ponto flutuante; use uma tolerância
Perguntas Frequentes
A aula “Conversões entre inteiros e ponto flutuante” é grátis?
Sim — o texto completo de “Conversões entre inteiros e ponto flutuante” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C Academy, atualize para CoddyKit PRO. O curso de C Academy inclui 4 aulas no total.
O que vou aprender em “Conversões entre inteiros e ponto flutuante”?
Questões de precisão. Você pratica C Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C Academy?
Nenhuma experiência prévia é necessária. C Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Conversões entre inteiros e ponto flutuante”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C Academy?
Sim. Cada aula de C Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Conversões implícitas
- Conversões explícitas
- Conversões entre inteiros e ponto flutuante
- Armadilhas de conversão