Zaokrąglanie i wartości bezwzględne
Pozna Pan/Pani floor, ceil, round i fabs.
Zaokrąglanie i wartości bezwzględne to bezpłatna lekcja C Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej C Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C Academy zawiera 4 lekcji w sumie.
Zaokrąglanie i wartości bezwzględne
W tej lekcji omówimy funkcje modyfikujące liczby: floor, ceil, round i trunc do zaokrąglania oraz fabs do obliczania wartości bezwzględnej.
Wszystkie znajdują się w math.h i działają z wartościami typu double.
Funkcja floor
floor(x) zaokrągla w dół do najbliższej liczby całkowitej, w kierunku ujemnej nieskończoności.
Zatem floor(3.9) wynosi 3.0, a floor(-1.2) wynosi -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;
}Funkcja ceil
ceil(x) zaokrągla w górę do najbliższej liczby całkowitej, w kierunku dodatniej nieskończoności.
Zatem ceil(3.1) wynosi 4.0, a ceil(-1.8) wynosi -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;
}Funkcja round
round(x) zaokrągla do najbliższej liczby całkowitej. Wartości dokładnie pośrodku są zaokrąglane od zera.
Zatem round(2.5) wynosi 3.0, a round(2.4) wynosi 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;
}Funkcja trunc
trunc(x) po prostu odcina część ułamkową, zawsze przesuwając wynik w kierunku zera.
Zatem trunc(3.9) wynosi 3.0, a trunc(-3.9) wynosi -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;
}Porównanie czterech funkcji
Dla wartości 2.7 wyniki się różnią:
floor(2.7)= 2.0 (w dół)ceil(2.7)= 3.0 (w górę)round(2.7)= 3.0 (do najbliższej)trunc(2.7)= 2.0 (w kierunku zera)
Wybierz funkcję, która odpowiada zamierzonemu działaniu.
Wartość bezwzględna za pomocą fabs
fabs(x) zwraca wartość bezwzględną liczby zmiennoprzecinkowej, czyli jej odległość od zera, zawsze nieujemną.
Zatem fabs(-7.5) wynosi 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 a abs
Należy zachować ostrożność: abs (z stdlib.h) działa na liczbach całkowitych, natomiast fabs (z math.h) działa na wartościach typu double.
Użycie abs dla wartości typu double najpierw odcięłoby część ułamkową. Dla liczb zmiennoprzecinkowych zawsze używaj fabs.
Konwersja na int
Te funkcje zwracają wartość typu double. Aby przechować liczbę całkowitą jako int, rzutuj wynik.
Najbezpieczniej jest najpierw użyć round, a dopiero potem rzutować, aby wartości takie jak 2.999 nie stały się przypadkowo równe 2.
#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;
}Przykład z odległością
fabs przydaje się do mierzenia odległości między dwiema wartościami, niezależnie od tego, która z nich jest większa.
Obliczamy tutaj różnicę między dwiema temperaturami.
#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;
}Zaokrąglanie do miejsc dziesiętnych
Aby zaokrąglić do dwóch miejsc po przecinku, pomnóż wartość przez 100, zaokrąglij, a następnie podziel przez 100.
Ten sposób wykorzystuje round, aby zachować uporządkowany format wartości przypominających kwoty pieniężne.
#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;
}Szybkie sprawdzenie
Przypomnij sobie, jak działa każda z funkcji zaokrąglających.
Podsumowanie
Nauczyłeś się używać funkcji floor (w dół), ceil (w górę), round (do najbliższej) i trunc (w kierunku zera), a także fabs do obliczania wartości bezwzględnej wartości typu double.
Pamiętaj, aby dla liczb zmiennoprzecinkowych używać fabs zamiast abs, a gdy potrzebujesz liczby całkowitej, rzutować wynik na int. Świetnie ukończyłeś kurs dotyczący math.h!
Często zadawane pytania
Czy lekcja „Zaokrąglanie i wartości bezwzględne” jest bezpłatna?
Tak — pełny tekst „Zaokrąglanie i wartości bezwzględne” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu C Academy, przejdź na CoddyKit PRO. Kurs C Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Zaokrąglanie i wartości bezwzględne”?
Pozna Pan/Pani floor, ceil, round i fabs. Ćwiczysz C Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć C Academy?
Nie wymagamy żadnego doświadczenia. C Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Zaokrąglanie i wartości bezwzględne”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji C Academy?
Tak. Każda lekcja C Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Dołączanie math.h
- Potęgi i pierwiastki
- Trygonometria i logarytmy
- Zaokrąglanie i wartości bezwzględne