...
Code Block |
---|
(haluttu_tyyppi)muuttuja; |
Tyypinmuunnos voidaan tehdä myös välitulokselle:
Code Block |
---|
(haluttu_tyyppi)(muuttuja1*muuttuja2);
|
Tässä laskennan muuttuja1*muuttuja2
tulokselle suoritetaan tyypinmuunnos.
Esimerkki
Ajatellaan seuraavaa tilannetta:
Code Block |
---|
int x; printf("Anna kokonaisluku: "); scanf("%d", %x&x); printf("%d/2 = %d\n", x, x/2); |
Koodissa halutaan tulostaa muuttuja x
jaettuna kahdella.
Tämä toimii, niin kauan kun x
on kahdella jaollinen.
Arvolla x = 4
ohjelma tulostaa:
No Format |
---|
4/2 = 2
|
Mitä sitten jos x
ei ole jaollinen kahdella?
Oletetaan että x = 3
, tällöin ohjelma tulostaa laskutoimituksen kokonaislukuna:
No Format |
---|
3/2 = 1
|
Tämä ei käy päinsä, vaan haluamme luonnollisesti saada kaiken informaation oikein käyttäjälle. Yksi vaihtoehto on muuttaa muuttujan x
tyyppi kokonaisluvuksiliukuluvuksi (float tai double), mutta tämä ei aina ole mahdollista tai haluttua. Tllöin Tällöin voimme käyttää tyyppimuunnosta tyypinmuunnosta apuna.
Code Block |
---|
int x; printf("Anna kokonaisluku: "); scanf("%d", %x&x); printf("%d/2 = %f\n", x, (float)x/2); // Huom. 1. tulostus on %d. 2. taas %f |
Note |
---|
|
Arvolla x = 3
ohjelma tulostaa:
...