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
floatnaintnie zaokrągla automatycznie, - część ułamkowa jest odrzucana,
3.99po konwersji naintdaje3,- dla liczb dodatnich dodanie
0.5przed konwersją może symulować proste zaokrąglanie do najbliższej liczby całkowitej.