Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Perustason Tyyppimuunnos | Tietotyyppien Käsittely
C# Perusteet

bookPerustason 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

main.cs

copy
1234
int 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

main.cs

copy
123456789101112131415
using 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

main.cs

copy
123456789101112131415
using 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); } } }
question mark

Mitkä alla olevista väittämistä ovat oikein?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 11

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 1.59

bookPerustason 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

main.cs

copy
1234
int 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

main.cs

copy
123456789101112131415
using 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

main.cs

copy
123456789101112131415
using 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); } } }
question mark

Mitkä alla olevista väittämistä ovat oikein?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 11
some-alt