Menu
Coddy logo textTech

Konwersja typów, część 1

Część sekcji Podstawy ścieżki C++ w Coddy. Lekcja 14 z 74.

Rzutowanie typów to proces konwertowania wartości z jednego typu danych na inny.

W C++ możemy konwertować liczby całkowite na liczby zmiennoprzecinkowe, liczby zmiennoprzecinkowe na liczby całkowite i nie tylko. Istnieją dwa rodzaje rzutowania: niejawne (automatyczne) i jawne (ręczne).

Na przykład Integer to Double:

Rzutowanie niejawne (automatyczne):

int number = 5;
double decimal = number; // automatycznie staje się 5.0

// z obliczeniem
int x = 7;
double result = x / 2.0; // result wynosi 3.5

Uwaga: Gdy dzielisz dwie wartości typu int, C++ wykonuje : część dziesiętna jest odrzucana. Na przykład 7 / 2 daje 3, a nie 3.5. Aby uzyskać wynik dziesiętny, co najmniej jeden operand musi być typu double (np. 7 / 2.0 daje 3.5).

Jawne (ręczne) rzutowanie Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // staje się 9 (część ułamkowa jest odrzucana)

// z obliczeniem
double price = 19.99;
int roundedPrice = (int) price;  // staje się 19

Preferowany współczesny styl C++: Zamiast rzutowania w stylu C (int) decimal lepiej używać static_cast<>(), które jest bezpieczniejsze i wyraźniej określa Twoje intencje:

double decimal = 9.7;
int number = static_cast<int>(decimal);  // przyjmuje wartość 9 (część ułamkowa zostaje odcięta)

double price = 19.99;
int roundedPrice = static_cast<int>(price);  // przyjmuje wartość 19

Uwaga: Zarówno (int) value, jak i static_cast<int>(value) dają tutaj ten sam wynik, ale static_cast<>() to zalecane podejście we współczesnym C++, ponieważ wyraźnie pokazuje konwersję i jest sprawdzane przez kompilator.

challenge icon

Wyzwanie

Początkujący

Napisz program w C++, który demonstruje rzutowanie typów. Wykonaj następujące czynności:

Rzutuj zmienną price na typ int i zapisz wynik w nowej zmiennej o nazwie intPrice.

Spróbuj swoich sił

#include <iostream>

int main() {
    // Zadeklaruj i zainicjalizuj zmienne
    double price = 99.99;
    int intPrice = ?; // Jawna konwersja typu z double na int
    
    
    // Wypisz wartości
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C++ online