0Pricing
C Academy · Aula

Arredondamento e valores absolutos

floor, ceil, round e fabs.

Arredondamento e valores absolutos é uma aula grátis de C Academy no CoddyKit. Esta é a aula 4 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.

Arredondamento e valores absolutos

Esta lição aborda funções que ajustam números: floor, ceil, round e trunc para arredondamento, além de fabs para valor absoluto.

Todas elas ficam em math.h e trabalham com valores double.

A função floor

floor(x) arredonda para baixo até o número inteiro mais próximo, na direção do infinito negativo.

Assim, floor(3.9) é 3.0, e floor(-1.2) é -2.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", floor(3.9));
    printf("%.1f\n", floor(-1.2));
    return 0;
}

A função ceil

ceil(x) arredonda para cima até o número inteiro mais próximo, na direção do infinito positivo.

Assim, ceil(3.1) é 4.0, e ceil(-1.8) é -1.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", ceil(3.1));
    printf("%.1f\n", ceil(-1.8));
    return 0;
}

A função round

round(x) arredonda para o número inteiro mais próximo. Nos casos exatamente no meio, o arredondamento é feito para longe de zero.

Assim, round(2.5) é 3.0, e round(2.4) é 2.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", round(2.5));
    printf("%.1f\n", round(2.4));
    return 0;
}

A função trunc

trunc(x) simplesmente remove a parte decimal, sempre na direção de zero.

Assim, trunc(3.9) é 3.0, e trunc(-3.9) é -3.0.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", trunc(3.9));
    printf("%.1f\n", trunc(-3.9));
    return 0;
}

Comparando as quatro

Para o valor 2.7, os resultados diferem:

  • floor(2.7) = 2.0 (down)
  • ceil(2.7) = 3.0 (para cima)
  • round(2.7) = 3.0 (mais próximo)
  • trunc(2.7) = 2.0 (na direção de zero)

Escolha a função que corresponde ao seu objetivo.

Valor absoluto com fabs

fabs(x) retorna o valor absoluto de um número de ponto flutuante: a distância até zero, sempre não negativa.

Assim, fabs(-7.5) é 7.5.

#include <stdio.h>
#include <math.h>

int main(void) {
    printf("%.1f\n", fabs(-7.5));
    printf("%.1f\n", fabs(7.5));
    return 0;
}

fabs versus abs

Tenha cuidado: abs (de stdlib.h) funciona com inteiros, enquanto fabs (de math.h) funciona com valores double.

Usar abs em um valor double removeria primeiro as casas decimais. Para ponto flutuante, use sempre fabs.

Convertendo para int

Essas funções retornam um double. Para armazenar um número inteiro como int, converta explicitamente o resultado.

O mais seguro é aplicar round primeiro e depois converter, para que valores como 2.999 não se tornem 2 por acidente.

#include <stdio.h>
#include <math.h>

int main(void) {
    double x = 4.6;
    int whole = (int)round(x);
    printf("whole = %d\n", whole);
    return 0;
}

Um exemplo com distância

fabs é útil para medir a distância entre dois valores, independentemente de qual seja maior.

Aqui, encontramos a diferença entre duas temperaturas.

#include <stdio.h>
#include <math.h>

int main(void) {
    double a = 5.0, b = 12.5;
    printf("gap = %.1f\n", fabs(a - b));
    return 0;
}

Arredondando para casas decimais

Para arredondar para duas casas decimais, multiplique por 100, aplique o arredondamento e depois divida por 100.

Esse truque usa round para manter organizados os valores no formato usado para dinheiro.

#include <stdio.h>
#include <math.h>

int main(void) {
    double price = 3.14159;
    double r = round(price * 100.0) / 100.0;
    printf("%.2f\n", r);
    return 0;
}

Verificação rápida

Lembre-se de como cada função de arredondamento se comporta.

Recapitulação

Você aprendeu floor (para baixo), ceil (para cima), round (mais próximo) e trunc (na direção de zero), além de fabs para obter o valor absoluto de valores double.

Lembre-se de usar fabs em vez de abs para números de ponto flutuante e de converter para int quando precisar de um número inteiro. Parabéns por concluir o curso de math.h!

Perguntas Frequentes

A aula “Arredondamento e valores absolutos” é grátis?

Sim — o texto completo de “Arredondamento e valores absolutos” é 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 “Arredondamento e valores absolutos”?

floor, ceil, round e fabs. 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 4 de 4.

Quanto tempo leva a aula “Arredondamento e valores absolutos”?

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. Incluindo math.h
  2. Potências e raízes
  3. Trigonometria e logaritmos
  4. Arredondamento e valores absolutos
← Voltar para C Academy