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); |