...
Eksplisiittinen
...
tyypinmuunnos
...
(cast)
...
- Eksplisiittisessä
...
- tyypinmuunnoksessa
...
- muuttujan
...
- tyyppi
...
- muutetaan
...
- väliaikaisesti
...
- (eli
...
- lausekkeen
...
- suorituksen
...
- ajaksi)
...
- muunnoksessa
...
- ilmoitetuksi
...
- tyypiksi.
...
- Muunnos
...
- tehdään
...
- kirjoittamalla
...
- muuttujan
...
- nimen
...
- eteen
...
- sulkeisiin
...
- lausekkeessa
...
- käytettävä
...
- tyyppi.
Syntaksi
Code Block |
---|
h2. Syntaksi {code} (haluttu_tyyppi)muuttuja; {code} |
Tyypinmuunnos
...
voidaan
...
tehdä
...
myös
...
välitulokselle:
Code Block |
---|
} (haluttu_tyyppi)(muuttuja1*muuttuja2); {code} |
Tässä
...
laskennan
...
muuttuja1*muuttuja2
...
tulokselle
...
suoritetaan
...
tyypinmuunnos.
Esimerkki
Ajatellaan seuraavaa tilannetta:
Code Block |
---|
h2. Esimerkki Ajatellaan seuraavaa tilannetta: {code} int x; printf("Anna kokonaisluku: "); scanf("%d", &x); printf("%d/2 = %d\n", x, x/2); {code} |
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 {noformat} |
Mitä
...
sitten
...
jos
...
x
...
ei
...
ole
...
jaollinen
...
kahdella?
...
Oletetaan
...
että
...
x
...
=
...
3
...
,
...
tällöin
...
ohjelma
...
tulostaa
...
laskutoimituksen
...
kokonaislukuna:
No Format |
---|
}3/2 = 1 {noformat} |
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
...
liukuluvuksi
...
(float
...
tai
...
double),
...
mutta
...
tämä
...
ei
...
aina
...
ole
...
mahdollista
...
tai
...
haluttua.
...
Tällöin
...
voimme
...
käyttää
...
tyypinmuunnosta
...
apuna.
Code Block |
---|
} int x; printf("Anna kokonaisluku: "); scanf("%d", &x); printf("%d/2 = %f\n", x, (float)x/2); // Huom. 1. tulostus on %d. 2. taas %f {code} {note}{{ |
Note |
---|
riittää, sillä jos yksikin laskennan arvoista on {{
-tyyppinen, on tuloskin tyyppiä {{ |
Arvolla x = 3
ohjelma tulostaa:
No Format |
---|
}}.{note} Arvolla {{x = 3}} ohjelma tulostaa: {noformat} 3/2 = 1.500000 {noformat} |