Perustason Tyyppimuunnos
Tyyppimuunnos tarkoittaa arvon muuttamista yhdestä tietotyypistä toiseen. Tämä on usein mahdollista sellaisten tyyppien välillä, jotka edustavat lukuja. Esimerkiksi voit muuntaa float-tyypin arvon int-tyyppiseksi ja päinvastoin. Sen sijaan string-tyypin muuttaminen suoraan int-tyypiksi ei ole loogista eikä mahdollista ilman lisätoimenpiteitä.
Tyyppimuunnoksia on kahta tyyppiä: implisiittinen tyyppimuunnos ja eksplisiittinen tyyppimuunnos.
Implisiittinen tyyppimuunnos tapahtuu automaattisesti, kun arvo muunnetaan yhdestä tyypistä toiseen, yleensä pienemmästä suurempaan tietotyyppiin.
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
Implisiittinen tyyppimuunnos tapahtuu automaattisesti, kun pienempi tietotyyppi muunnetaan suuremmaksi. Tietotyypin koko määräytyy sen mukaan, kuinka paljon tietoa se voi tallentaa, mitattuna bitteinä. Esimerkiksi int voi tallentaa 32 bittiä, kun taas long voi tallentaa 64 bittiä, joten int-tyypin muuntaminen long-tyypiksi tapahtuu automaattisesti. Samoin float voidaan muuntaa double-tyypiksi ilman ongelmia.
Tässä on tietotyypit järjestettynä pienimmästä suurimpaan:
char -> int -> long -> float -> double
Eksplisiittinen tyyppimuunnos tarkoittaa, että ohjelmoija määrää tietokoneen muuttamaan arvon toiseen tietotyyppiin. Tämä on tarpeen, kun muunnetaan suuremmasta tietotyypistä pienempään, koska osa tiedoista voi hävitä. Esimerkiksi kun float-arvo 3.14 muunnetaan kokonaisluvuksi, tulokseksi saadaan 3 ja desimaaliosa katoaa. Siksi tällaiset muunnokset täytyy tehdä nimenomaisesti.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Virheen korjaamiseksi yllä olevassa koodissa meidän täytyy suorittaa eksplisiittinen tyyppimuunnos val1:stä kokonaislukuarvoksi.
Tyyppimuunnoksen syntaksi on (datatype) value, esimerkiksi (int) 3.1415. Tässä tapauksessa kirjoitamme siis (int) val1:
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 1.59
Perustason Tyyppimuunnos
Pyyhkäise näyttääksesi valikon
Tyyppimuunnos tarkoittaa arvon muuttamista yhdestä tietotyypistä toiseen. Tämä on usein mahdollista sellaisten tyyppien välillä, jotka edustavat lukuja. Esimerkiksi voit muuntaa float-tyypin arvon int-tyyppiseksi ja päinvastoin. Sen sijaan string-tyypin muuttaminen suoraan int-tyypiksi ei ole loogista eikä mahdollista ilman lisätoimenpiteitä.
Tyyppimuunnoksia on kahta tyyppiä: implisiittinen tyyppimuunnos ja eksplisiittinen tyyppimuunnos.
Implisiittinen tyyppimuunnos tapahtuu automaattisesti, kun arvo muunnetaan yhdestä tyypistä toiseen, yleensä pienemmästä suurempaan tietotyyppiin.
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
Implisiittinen tyyppimuunnos tapahtuu automaattisesti, kun pienempi tietotyyppi muunnetaan suuremmaksi. Tietotyypin koko määräytyy sen mukaan, kuinka paljon tietoa se voi tallentaa, mitattuna bitteinä. Esimerkiksi int voi tallentaa 32 bittiä, kun taas long voi tallentaa 64 bittiä, joten int-tyypin muuntaminen long-tyypiksi tapahtuu automaattisesti. Samoin float voidaan muuntaa double-tyypiksi ilman ongelmia.
Tässä on tietotyypit järjestettynä pienimmästä suurimpaan:
char -> int -> long -> float -> double
Eksplisiittinen tyyppimuunnos tarkoittaa, että ohjelmoija määrää tietokoneen muuttamaan arvon toiseen tietotyyppiin. Tämä on tarpeen, kun muunnetaan suuremmasta tietotyypistä pienempään, koska osa tiedoista voi hävitä. Esimerkiksi kun float-arvo 3.14 muunnetaan kokonaisluvuksi, tulokseksi saadaan 3 ja desimaaliosa katoaa. Siksi tällaiset muunnokset täytyy tehdä nimenomaisesti.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Virheen korjaamiseksi yllä olevassa koodissa meidän täytyy suorittaa eksplisiittinen tyyppimuunnos val1:stä kokonaislukuarvoksi.
Tyyppimuunnoksen syntaksi on (datatype) value, esimerkiksi (int) 3.1415. Tässä tapauksessa kirjoitamme siis (int) val1:
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Kiitos palautteestasi!