I visse tilfeller er det mer praktisk å jobbe med heltall i inngangsargumentene til disse funksjonene eller med resultatene deres, verken fordi programmet vårt bare skal fungere med disse mengdene eller fordi brøkverdiene deres ikke vil representere et betydelig brudd i det endelige resultatet av operasjonen.
For disse avrundingsoperasjonene gir C -språket et sett med funksjoner inkludert i "matte" bibliotek. For å runde en variabel til nærmeste heltall, er det funksjonen Ceil (). For å runde en variabel til nærmeste heltall, er det funksjonsgulvet ().
I dette Linux hint Artikkel, vil du lære alt om å bruke funksjonen til å runde brøkverdiene til nærmeste heltall.
For å hjelpe deg med å forstå og mestre denne funksjonen bedre, opprettet vi praktiske eksempler med kodefragmenter og bilder som viser bruken av den med forskjellige typer inngangsvariabler.
Syntaks av taket () -funksjonen på C -språk:
Dobbelt Ceil (dobbel x)Ceil () Funksjonsbeskrivelse på C -språket
Denne funksjonen runder til neste større heltallverdi av den numeriske variabelen som er spesifisert i inngangsargumentene.
De Ceil () funksjon er et av et sett med funksjoner levert av "matte" bibliotek. For å bruke denne funksjonen, må vi inkludere den i vår “.C ” fil som følger:
#inkludereNår "matematikk" -bibliotekene er inkludert, kan vi bruke Ceil () til å runde opp eller gulvet () for å runde ned, så vel som alle funksjonene i matematikkbibliotekene.
For å få avrunding av “X”, må du kalle denne funksjonen, og spesifisere variabelnavnet i inngangsargumentet. Ceil () Returnerer resultatet i “A”.
Eksempel 1: Hvordan runde et fraksjonelt heltall med Ceil () -funksjonen i Linux GCC
I dette eksemplet vil vi se hvordan vi kan runde en brøkverdi til neste større heltall ved å bruke takfunksjonen i GCC.
Følgende kodebit viser hvordan du bruker Ceil () Funksjon for å få avrunding av dobbelt “x” som har en tildelt verdi på 3.1416. Deretter brukes printf () -funksjonen til å sende ut resultatet som "A" på kommandokonsollen:
#inkludereI det følgende bildet ser vi resultatet i kommandokonsollen. I dette tilfellet avrunding av 3.1416 er 4.00000.
Vanlige problemer med avrundingsfunksjonene Ceil () og gulv () og hvordan du løser dem
Når vi bruker funksjonene og kompilerer koden vår, hender det ofte at samlingen gir følgende feil:
"hoved.C: (.Tekst+0x30): Udefinert referanse til 'Ceil' “Dette får oss til å se etter syntaksfeil eller udefinerte variabler i våre ".C ”eller“.H ”-kode, siden alt indikerer at problemet vårt ligger der. Men dette fører til tap av verdifull tid siden problemet vårt ligger i koblingen av bibliotekene og datakompatibiliteten til disse funksjonene.
For programmerere som liker å vite årsaken til et problem og ikke bare løse det, vil vi forklare denne feilen trinn for trinn for å få programmering til å fungere mer flytende og unngå å laste unødvendige biblioteker for koden vår.
For å forklare dette, sammenstiller vi koden fra forrige eksempel som følger. I den følgende figuren ser vi samlingen av koden vår og feilen som det er referert til i dette avsnittet:
Dette fordi C99, GCC deler bibliotekene sine i to deler - LIBC og LIBM. Selv om biblioteket som vi refererer til i vår kode, finnes i begge deler, er datatypene som disse funksjonene godtar i hver av versjonene deres forskjellige, og det er kilden til problemet.
Hvis funksjonstaket () kalles med en int som input, forsvinner feilen, selv om avrundingen oppstår.
Disse problemene er løst på kompileringstid ved å påkalle libm bibliotek på kommandolinjen som vi bruker for å kompilere. Følgende er banen:
GCC -dokumenter/hoved.C -LM -o C CKonklusjon
I denne Linux -hint -artikkelen viste vi deg hvordan du bruker YES -funksjonen til å runde brøkverdiene til nærmeste heltall. Vi forklarte trinn for trinn på hvordan du laster "matematikk" -biblioteket for å bruke denne funksjonen. Vi viste deg også hvordan du bruker avrundingsfunksjonene til dette biblioteket med et praktisk eksempel. Vi viste deg også en av de vanligste feilene når du bruker denne funksjonen og hvordan du fikser den for å få en jevn programmeringsoppgave. Vi håper du fant denne C Language -artikkelen nyttig. Les de andre Linux -hint -artiklene for flere tips og informasjon.