0Pricing
C Academy · Aula

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

  1. Conversões implícitas
  2. Conversões explícitas
  3. Conversões entre inteiros e ponto flutuante
  4. Armadilhas de conversão
← Voltar para C Academy