0Pricing
SQL Academy · Aula

Arredondamento e truncamento

ROUND, CEIL, FLOOR e TRUNC.

Arredondamento e truncamento é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 2 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 SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.

Por que o arredondamento é importante

Ao trabalhar com números em SQL, você frequentemente obtém resultados com muitas casas decimais. Por exemplo, dividir 10 por 3 resulta em 3.3333333...

SQL oferece funções integradas para controlar quantas casas decimais você exibe ou armazena: ROUND, CEIL, FLOOR e TRUNC. Elas são essenciais para apresentar valores financeiros, medições e estatísticas de forma organizada.

SELECT 10.0 / 3.0 AS raw_result;

ROUND: uso básico

A função ROUND() arredonda um número para uma quantidade especificada de casas decimais. Ela segue as regras padrão de arredondamento: dígitos iguais ou maiores que 5 são arredondados para cima, e dígitos menores que 5 são arredondados para baixo.

A sintaxe é: ROUND(number, decimal_places). Se você omitir o segundo argumento, ela arredondará para o número inteiro mais próximo.

SELECT
  ROUND(3.14159, 2) AS two_decimals,
  ROUND(3.14159, 0) AS zero_decimals,
  ROUND(3.14159)    AS no_arg;

ROUND com casas decimais negativas

Um recurso menos conhecido de ROUND() é poder passar um número negativo como segundo argumento. Isso arredonda à esquerda do separador decimal — útil para arredondar para a dezena, centena ou milhar mais próximo.

Por exemplo, ROUND(1567, -2) arredonda para a centena mais próxima e resulta em 1600.

SELECT
  ROUND(1567.89, -1)  AS nearest_ten,
  ROUND(1567.89, -2)  AS nearest_hundred,
  ROUND(1567.89, -3)  AS nearest_thousand;

CEIL: sempre arredonda para cima

CEIL() (também escrito como CEILING() em alguns bancos de dados) sempre arredonda um número para cima até o inteiro mais próximo, independentemente da parte decimal.

Isso é útil quando você precisa garantir que nunca ficará abaixo de um mínimo — por exemplo, ao calcular o número de páginas necessárias para exibir um conjunto de resultados.

SELECT
  CEIL(4.1)   AS ceil_4_1,
  CEIL(4.9)   AS ceil_4_9,
  CEIL(-4.1)  AS ceil_neg_4_1,
  CEIL(-4.9)  AS ceil_neg_4_9;

FLOOR: sempre arredonda para baixo

FLOOR() sempre arredonda um número para baixo até o inteiro mais próximo, independentemente da parte decimal.

Observe que, para números negativos, FLOOR arredonda para longe de zero — FLOOR(-4.1) resulta em -5, não -4. Esse é o comportamento oposto ao que alguns iniciantes esperam.

SELECT
  FLOOR(4.9)   AS floor_4_9,
  FLOOR(4.1)   AS floor_4_1,
  FLOOR(-4.1)  AS floor_neg_4_1,
  FLOOR(-4.9)  AS floor_neg_4_9;

CEIL e FLOOR lado a lado

Ver CEIL e FLOOR juntos facilita entender a diferença. CEIL sempre sobe até o próximo número inteiro, enquanto FLOOR sempre desce.

Pense nisso como um prédio: FLOOR é o nível do chão ao qual você cai, e CEIL é o teto ao qual você sobe.

SELECT
  2.3   AS original,
  CEIL(2.3)  AS ceil_result,
  FLOOR(2.3) AS floor_result
UNION ALL
SELECT
  7.8,
  CEIL(7.8),
  FLOOR(7.8);

TRUNC: corte sem arredondar

TRUNC() (ou TRUNCATE() no MySQL) remove os dígitos decimais sem qualquer arredondamento. Ele simplesmente elimina os dígitos após a posição especificada.

Isso é diferente de ROUND — TRUNC(4.9) resulta em 4, não 5. A parte decimal é simplesmente descartada.

SELECT
  TRUNC(4.9)       AS trunc_4_9,
  TRUNC(4.1)       AS trunc_4_1,
  TRUNC(-4.9)      AS trunc_neg_4_9,
  TRUNC(3.14159, 3) AS trunc_3_decimals;

Comparando ROUND e TRUNC

A principal diferença entre ROUND e TRUNC é que ROUND altera o valor com base no dígito seguinte, enquanto TRUNC sempre descarta tudo após o ponto de corte, sem fazer ajustes.

Use ROUND quando quiser o valor matematicamente mais próximo. Use TRUNC quando quiser remover estritamente a precisão sem qualquer ajuste para cima — algo comum em cálculos financeiros nos quais você nunca deve pagar a mais.

SELECT
  ROUND(2.567, 1)  AS rounded,
  TRUNC(2.567, 1)  AS truncated;
-- ROUND gives 2.6 (5 rounds up)
-- TRUNC gives 2.5 (just cuts off)

Usando ROUND em uma tabela real

As funções de arredondamento são mais poderosas quando aplicadas às colunas de uma tabela. Aqui, criamos uma tabela simples de produtos com preços e aplicamos ROUND para exibi-los de forma organizada.

Esse padrão é muito comum em consultas de comércio eletrônico e contabilidade, nas quais cálculos brutos produzem muitas casas decimais.

CREATE TABLE products (
  name  TEXT,
  price NUMERIC
);

INSERT INTO products VALUES
  ('Widget',  9.999),
  ('Gadget',  24.3333),
  ('Doohickey', 4.5678);

SELECT name, ROUND(price, 2) AS display_price
FROM products;

Combinando funções em uma consulta

Você pode combinar funções de arredondamento com outras expressões SQL. Por exemplo, calcular um preço com desconto e depois arredondá-lo para exibição.

Essa consulta aplica um desconto de 15%, arredonda o resultado para 2 casas decimais e também mostra o FLOOR e o CEIL do preço com desconto — fornecendo preços mínimos e máximos em números inteiros.

SELECT
  name,
  price,
  ROUND(price * 0.85, 2)  AS discounted,
  FLOOR(price * 0.85)     AS min_price,
  CEIL(price  * 0.85)     AS max_price
FROM products;

Paginação com CEIL

Um uso clássico de CEIL é calcular o total de páginas em um sistema de paginação. Se você tiver 97 linhas e mostrar 10 por página, precisará de CEIL(97 / 10.0) = 10 páginas (não 9, porque a última página tem 7 linhas).

Divida sempre por um valor decimal (10.0, não 10) para evitar a divisão inteira, que descartaria o resto antes de CEIL poder agir sobre ele.

SELECT
  97 AS total_rows,
  10 AS rows_per_page,
  CEIL(97 / 10.0) AS total_pages;

Verificação rápida

Teste sua compreensão das funções de arredondamento do SQL.

Recapitulação da lição

Muito bem! Aqui está um resumo das funções de arredondamento e truncamento em SQL:

  • ROUND(n, d) — arredonda para d casas decimais usando as regras matemáticas padrão (5 ou mais arredonda para cima).
  • CEIL(n) — sempre arredonda para cima até o inteiro mais próximo.
  • FLOOR(n) — sempre arredonda para baixo até o inteiro mais próximo.
  • TRUNC(n, d) — remove os dígitos após a posição d sem arredondar; nunca aumenta o valor.

Use ROUND para exibição e estatísticas, CEIL para cálculos de capacidade mínima (como páginas), FLOOR para cálculos de capacidade máxima e TRUNC quando você nunca puder arredondar para cima — especialmente em contextos financeiros.

Perguntas Frequentes

A aula “Arredondamento e truncamento” é grátis?

Sim — o texto completo de “Arredondamento e truncamento” é 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 SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.

O que vou aprender em “Arredondamento e truncamento”?

ROUND, CEIL, FLOOR e TRUNC. Você pratica SQL 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 SQL Academy?

Nenhuma experiência prévia é necessária. SQL 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 2 de 4.

Quanto tempo leva a aula “Arredondamento e truncamento”?

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 SQL Academy?

Sim. Cada aula de SQL 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. Aritmética e operadores
  2. Arredondamento e truncamento
  3. Divisão de inteiros versus decimais
  4. Funções matemáticas úteis
← Voltar para SQL Academy