Konwersja float na int w C++

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Konwersja float na int w C++

W C++ wartość typu zmiennoprzecinkowego, np. float lub double, może zostać przekształcona na typ całkowity int. Taka konwersja usuwa część ułamkową liczby, czyli następuje obcięcie, a nie matematyczne zaokrąglenie.

Przykład

float x = 4.05;
int y = x;

Po wykonaniu tego kodu zmienna y będzie miała wartość 4, ponieważ część .05 zostanie odrzucona.

Konwersja przy instrukcji return

Jeżeli funkcja ma zadeklarowany typ zwracany int, to każda zwracana wartość zostanie dopasowana do typu int.

int zao(float x) {
    return x + 0.5;
}

Dla wywołania:

zao(3.55);

najpierw obliczane jest:

3.55 + 0.5 = 4.05

Następnie funkcja musi zwrócić int, więc 4.05 zostaje obcięte do 4.

Ważne

  • konwersja float na int nie zaokrągla automatycznie,
  • część ułamkowa jest odrzucana,
  • 3.99 po konwersji na int daje 3,
  • dla liczb dodatnich dodanie 0.5 przed konwersją może symulować proste zaokrąglanie do najbliższej liczby całkowitej.