Konwersja między liczbami
Rzutowania i metody Convert.
Konwersja między liczbami 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.
Po co konwertować?
Różne typy liczbowe nie zawsze można dowolnie ze sobą łączyć. Czasami trzeba przekonwertować wartość z jednego typu na inny.
C# oferuje konwersje niejawne, jawne rzutowania, klasę Convert oraz parsowanie tekstu. W tej lekcji omówiono każdą z tych możliwości.
Konwersja niejawna
Gdy typ docelowy może przechować każdą możliwą wartość typu źródłowego, C# wykonuje konwersję niejawną bez dodatkowej składni.
Wartość typu int mieści się w typie double, więc takie przypisanie jest automatyczne i bezpieczne.
int whole = 7;
double real = whole;
Console.WriteLine(real);Jawne rzutowanie
Konwersja w przeciwnym kierunku może prowadzić do utraty danych, dlatego C# wymaga jawnego rzutowania z typem docelowym zapisanym w nawiasach.
Rzutowanie wartości typu double na int obcina część ułamkową w kierunku zera.
double price = 9.99;
int dollars = (int)price;
Console.WriteLine(dollars);Rzutowanie może spowodować przepełnienie
Rzutowanie wartości, która nie mieści się w typie docelowym, może w wyniku przepełnienia dać nieprawidłowy rezultat.
Rzutowanie dużej wartości typu long na int powoduje zawinięcie wartości, dlatego zawsze należy sprawdzić, czy dana wartość się mieści.
long big = 3000000000;
int small = (int)big;
Console.WriteLine(small);Klasa Convert
Klasa System.Convert konwertuje wartości między typami za pomocą metod takich jak Convert.ToInt32 i Convert.ToDouble.
W przeciwieństwie do rzutowania metoda Convert.ToInt32 zaokrągla wartość double do najbliższej liczby całkowitej, zamiast ją obcinać.
double value = 9.99;
int rounded = Convert.ToInt32(value);
Console.WriteLine(rounded);Parsowanie liczb z tekstu
Dane wprowadzane przez użytkownika i odczytywane z plików są typu string. Należy użyć int.Parse lub double.Parse, aby zamienić tekst na liczby.
Tekst musi przedstawiać prawidłową liczbę, w przeciwnym razie parsowanie spowoduje zgłoszenie wyjątku.
string text = "42";
int number = int.Parse(text);
Console.WriteLine(number + 8);Bezpieczne parsowanie za pomocą TryParse
int.TryParse próbuje wykonać konwersję i zwraca true lub false zamiast zgłaszać wyjątek. Sparsowana wartość jest zwracana przez parametr out.
To bezpieczny sposób obsługi niezaufanych danych wejściowych.
bool ok = int.TryParse("abc", out int result);
Console.WriteLine(ok);
Console.WriteLine(result);Liczby na tekst
Każdy typ liczbowy ma metodę ToString, która tworzy tekst. Można przekazać ciąg formatujący, aby określić sposób wyświetlania.
"C"waluta"F2"format stałoprzecinkowy z 2 miejscami po przecinku"N0"grupowanie tysięcy
double amount = 1234.5;
Console.WriteLine(amount.ToString("F2"));
Console.WriteLine(amount.ToString("N0"));Konwersja int na double przy dzieleniu
Częstym powodem konwersji jest chęć uniknięcia dzielenia całkowitego. Przed dzieleniem należy rzutować jeden operand na double, aby zachować część dziesiętną.
Bez rzutowania otrzymany zostałby obcięty wynik będący liczbą całkowitą.
int scored = 7, total = 10;
double percent = (double)scored / total * 100;
Console.WriteLine(percent);Rzutowanie a Convert i Parse
Należy wybrać właściwe narzędzie:
- Rzutowanie między typami liczbowymi (obcina część ułamkową)
- Convert między wieloma typami (zaokrągla i obsługuje wartości null)
- Parse / TryParse zamienia tekst na liczby
W przypadku danych wejściowych, nad którymi nie ma kontroli, należy preferować TryParse.
Przykład konwersji
Ten kompletny program odczytuje liczbę z tekstu, konwertuje ją, wykonuje na niej obliczenia i formatuje wynik jako kwotę pieniężną.
string input = "19.95";
if (decimal.TryParse(input, out decimal price))
{
decimal withTax = price * 1.20m;
Console.WriteLine(withTax.ToString("F2"));
}Szybkie sprawdzenie
Wybierz najbezpieczniejszy sposób konwersji tekstu wpisanego przez użytkownika na liczbę.
Podsumowanie
Nauczono się konwertować liczby: stosować konwersje niejawne, gdy są bezpieczne, jawne rzutowania (które obcinają część ułamkową i mogą powodować przepełnienie), klasę Convert (która zaokrągla) oraz parsować tekst za pomocą Parse i bezpieczniejszej metody TryParse.
Nauczono się także formatować liczby z powrotem do tekstu za pomocą kodów formatu ToString. Aby uniknąć dzielenia całkowitego, należy rzutować jeden operand na double.
Często zadawane pytania
Czy lekcja „Konwersja między liczbami” jest bezpłatna?
Tak — pełny tekst „Konwersja między liczbami” 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 „Konwersja między liczbami”?
Rzutowania i metody Convert. Ć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 „Konwersja między liczbami”?
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
- Typy liczbowe
- Arytmetyka i priorytet operatorów
- Klasa Math
- Konwersja między liczbami