kurs programowania c++ c# sql postgresql



C#

Rzutowanie czyli konwersja typów.

Rzutowanie, czyli konwersja typów, to nic innego jak próba zamiany typu zmiennej na inny typ. Jest jednak pewien haczyk. O ile można rzutować wartość z typu o mniejszej precyzji do typu o większej precyzji o tyle nie można niejawnie rzutować typu o większej precyzji na typ o mniejszej precyzji.

Pokażę to na dwóch prostych przykładach.

W pierwszym przykładzie postaram się rzutować wartość zmiennej x typu int na typ double a w drugim przykładzie postaram się uzyskać odwrotny efekt czyli rzutować wartość zmiennej x typu double na typ int.

Rzutowanie wartości zmiennej x typu int na zmienną y typu double. Takie rzutowanie przedstawia kod na rysunku poniżej.

kurs c# csharp podstawy programowania rzutowanie
Rzutowanie wartości zmiennej x typu int na zmienną y typu double.

Wynikiem uruchomienia takiego programu będzie wyświetlenie na ekranie wartości 100, co jest wynikiem prawidłowym.

Kolejne zadanie to rzutowanie wartości zmiennej x typu double na zmienną y typu int. Takie rzutowanie przedstawia kod na rysunku poniżej.

kurs c# csharp podstawy programowania rzutowanie
Rzutowanie wartości zmiennej x typu double na zmienną y typu int.

Przy próbie uruchomienia programu otrzymujemy komunikat „There were build errors. Would You like to continue and run the last successful build. Yes/No?” co oznacza, że nie można skompilować naszego program z powodu błędów w kodzie.

Jak najedziemy kursorem nad podkreślone x otrzymamy komunikat „Cannot implicitly convert type ‘double’ to ‘int’. An explicit conversion exists (are you missing a cart?)”. To oznacza, że trzeba zadeklarować jawną konwersję, co przedstawia poniższy rysunek.

kurs c# csharp podstawy programowania rzutowanie
Jawne rzutowanie typu double na int.

Widzimy, że Visual Studio nie pokazuje żadnych błędów więc powinniśmy mieć możliwość uruchomienia naszego programu. Więc do dzieła, uruchamiamy go przyciskiem F5. Wynikiem działania naszego programu jest liczba 10, co obrazuje następny rysunek.

kurs c# csharp podstawy programowania rzutowanie
Wynik jawnego rzutowania typu double na int.

Nasuwa się pytanie, ale dlaczego 10 a nie 10,5 jak było zadeklarowane w zmiennej typu double. Odpowiedź jest prosta, bo rzutowaliśmy zmienną o typie o większej precyzji na zmienną o typie o mniejszej precyzji. Zmienna typu int nie może przechowywać wartości zmiennoprzecinkowych, więc rzutując taką wartość tracimy jej precyzję i wynik jest, w naszym przypadku, zaokrąglany do liczb całkowitych.