Para essas operações de arredondamento, o idioma C fornece um conjunto de funções incluídas no "matemática" biblioteca. Para Rounnd uma variável para o número inteiro mais próximo, existe o teto () função. Para arredondar para o número inteiro mais próximo, há a função piso ().
Nisso Linux Dica Artigo, você aprenderá tudo sobre como usar a função para arredondar os valores fracionários para o número inteiro mais próximo. Para ajudá -lo a entender e dominar melhor essa função, criamos exemplos práticos com fragmentos e imagens de código que mostram seu uso com diferentes tipos de variáveis de entrada. Também fornecemos uma descrição teórica desta função, sua sintaxe, argumentos de entrada e saída e os dados aceitos nela.
Sintaxe da função CEIL () na linguagem C
teto duplo (duplo x)Descrição da função do teto () no idioma C
Esta função roda para o próximo valor inteiro maior da variável numérica WHCIH é especificada em seus argumentos de entrada. O teto () A função é um dos conjuntos de funções fornecidas pelo "matemática" biblioteca e é definida na “matemática.H ”cabeçalho. Para usar esta função, devemos incluí -la em nosso ““.C ” Arquivo o seguinte:
#incluirUma vez a “Matemática.O cabeçalho Hy ”está incluído, podemos usar o teto () para arredondar ou o piso () para arredondar, bem como todas as funções nas bibliotecas de matemática. Para obter o arredondamento de "X", você deve chamar essa função especificando o nome da variável em seu argumento de entrada. O teto () Retorna o resultado em "A".
Exemplo: como arredondar um número inteiro fracionário com a função CEIL () no Linux GCC
Neste exemplo, veremos como arredondar um valor fracionário para o próximo número inteiro maior usando a função CEIL no GCC.
O snippet de código a seguir mostra como usar o teto () função para obter o arredondamento de duplo "x" que tenha um valor atribuído de 3.1416. Em seguida, a função printf () é usada para gerar o resultado como "a" no console de comando.
#incluirNa imagem a seguir, vemos o resultado no console de comando. Nesse caso, é o arredondamento de 3.1416 é 4.00000:
Problemas comuns com as funções de arredondamento do teto () e piso () e como resolvê -los
Quando usamos as funções e compilamos nosso código, muitas vezes acontece que a compilação fornece o seguinte erro:
"principal.C: (.Texto+0x30): Referência indefinida ao 'teto' "Isso nos faz procurar erros de sintaxe ou variáveis indefinidas em nosso “.C "ou".Código H ”, já que tudo indica que nosso problema está lá. Mas isso leva a uma perda de tempo valioso, já que nosso problema está na ligação das bibliotecas e na compatibilidade de dados dessas funções.
Para programadores que gostam de saber o motivo de um problema e não apenas resolvê -lo, explicaremos esse erro passo a passo para tornar a programação funcionar mais fluente e evitar carregar bibliotecas desnecessárias para o nosso código.
Para explicar isso, compilamos o código do exemplo anterior da seguinte forma. Na figura a seguir, vemos a compilação de nosso código e o erro referido nesta seção:
Isso ocorre porque desde C99, o GCC divide suas bibliotecas em duas partes - libc e libm. Embora a biblioteca que nos referimos em nosso código seja encontrada em ambos, os tipos de dados que essas funções aceitam em cada uma de suas versões são diferentes, e essa é a fonte do problema. Se o teto () A função é chamada com um int como entrada, o erro desaparece, embora o arredondamento ocorra.
Esses problemas são corrigidos no tempo de compilação, invocando o libm biblioteca na linha de comando que usamos para compilar. O seguinte é o caminho:
Documentos GCC/Principal.c -lm -o cConclusão
Nisso Linux Dica artigo, mostramos como usar o teto () função para arredondar os valores fracionários para o número inteiro mais próximo. Explicamos passo a passo sobre como carregar a biblioteca "matemática" para usar esta função. Também mostramos um dos erros mais comuns ao usar essa função e como corrigi -la para obter uma tarefa de programação suave. Esperamos que você tenha achado este artigo de idioma C útil. Veja outro Linux Dica Artigos para mais dicas e informações.