Rational i BigDecimal
Arytmetyka dokładna
Rational i BigDecimal to bezpłatna lekcja Ruby 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 Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Po co stosować dokładne obliczenia?
Liczby zmiennoprzecinkowe tracą precyzję. W przypadku pieniędzy i ułamków Ruby oferuje typy Rational i BigDecimal, które zachowują dokładność.
puts 0.1 + 0.2Tworzenie liczby Rational
Rational to dokładny ułamek. Można zapisać go z sufiksem r lub za pomocą Rational(num, den).
puts (1r / 3)
puts Rational(2, 4)Rational automatycznie skraca ułamki
Liczby Rational są automatycznie sprowadzane do najprostszej postaci, więc 2/4 staje się 1/2.
puts Rational(6, 8)
puts Rational(10, 5)Dokładne działania na ułamkach
Dodawanie liczb Rational pozostaje dokładne, w przeciwieństwie do działań na liczbach zmiennoprzecinkowych. Jedna trzecia plus jedna trzecia plus jedna trzecia daje dokładnie jeden.
third = Rational(1, 3)
puts (third + third + third)Licznik i mianownik
Poszczególne części można odczytać za pomocą numerator i denominator.
r = Rational(3, 4)
puts r.numerator
puts r.denominatorKonwertowanie liczb Rational
to_f przekształca liczbę Rational w liczbę zmiennoprzecinkową, gdy potrzebne jest przybliżenie dziesiętne.
puts Rational(1, 8).to_fŁadowanie BigDecimal
BigDecimal obsługuje dokładne liczby dziesiętne, idealne do operacji pieniężnych. Najpierw wczytaj go ze standardowej biblioteki.
require "bigdecimal"
a = BigDecimal("0.1")
b = BigDecimal("0.2")
puts (a + b).to_s("F")Zawsze używaj napisów
Twórz obiekty BigDecimal na podstawie napisów, a nie liczb zmiennoprzecinkowych, aby nie utracić precyzji jeszcze przed rozpoczęciem obliczeń.
require "bigdecimal"
good = BigDecimal("1.1")
puts good.to_s("F")Obliczenia pieniężne
BigDecimal zachowuje dokładność groszy podczas wielu operacji.
require "bigdecimal"
price = BigDecimal("19.99")
qty = 3
total = price * qty
puts total.to_s("F")Zaokrąglanie BigDecimal
round dla obiektu BigDecimal precyzyjnie kontroluje liczbę miejsc dziesiętnych.
require "bigdecimal"
n = BigDecimal("2.675")
puts n.round(2).to_s("F")Wybór właściwego narzędzia
Używaj Rational do dokładnych ułamków i ilorazów. Używaj BigDecimal do dokładnych obliczeń pieniężnych na liczbach dziesiętnych. Używaj Float do szybkich obliczeń naukowych, w których niewielki błąd jest dopuszczalny.
require "bigdecimal"
puts Rational(1, 3)
puts BigDecimal("0.33").to_s("F")Szybki test
Sprawdź działania arytmetyczne bez utraty dokładności.
Podsumowanie
Poznałeś dokładne działania arytmetyczne:
- Rational do dokładnych ułamków, które są automatycznie skracane
numerator,denominator,to_f- BigDecimal tworzony z napisów do dokładnych obliczeń pieniężnych
- wybór właściwego typu do danego zadania
To kończy kurs Ruby Numbers and Math.
puts (Rational(1, 2) + Rational(1, 3))Ucz się Ruby dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 29
- Lekcje
- 109
Często zadawane pytania
Czy lekcja „Rational i BigDecimal” jest bezpłatna?
Tak — pełny tekst „Rational i BigDecimal” 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 Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Rational i BigDecimal”?
Arytmetyka dokładna Ćwiczysz Ruby 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ąć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby 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 „Rational i BigDecimal”?
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 Ruby Academy?
Tak. Każda lekcja Ruby 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
- Liczby całkowite i zmiennoprzecinkowe
- Arytmetyka i operatory
- Moduł Math
- Rational i BigDecimal