
8.0 Implicitní
Implicitní konverze (probíhá sama) vypadá asi takto :
Pokud násobíte třeba int * double, výsledek se zaokrouhlí
na double. Tato konverze se nějak nevyužívá, jen jsem vás
chtěl upozornit, že něco takového existuje ...
8.1 Explicitní
To je konverze, kterou volá programátor potřebuje.
Syntakticky to vypadá takto :
promenna = (typ_na_ktery_se_konvertuje)jina_promenna; // místo jina_promenna může být aritmetický výraz, makro, l-hodnota ... |
int i; double d; i = (int)d; // d se zaokrouhlilo na int. d = (double)((int)(d * 100.0)) / 100.0; // d se zaokrouhlilo na 2 desetinná čísla // dáme příklad : d = 3.1415926 // v prvním kroku se vynásobí stem : 314.15926 // potom se zaokrouhlí (převedení na int = odříznutí des. části) : 314 // potom se převede zpět na double : 314.0 // a vydělí stem : d = 3.14 i = (int)(d + 0.5); // tohle zaokrouhlí d a výsledk dá do i // (pokud je des. část d větší než 0.5, // výsledek vyjde o jedničku větší a desetinná část se uřízne) |
float f;
int i;
i = 1;
f = i / 2;
printf("%f \n", f);
|
float f;
int i;
i = 1;
f = (float)i / 2;
printf("%f \n", f);
|