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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C# Perusteet

bookPerustason Tyyppimuunnos

Tyyppimuunnos tarkoittaa arvon muuttamista yhdestä tietotyypistä toiseen. Tämä on usein mahdollista sellaisten tyyppien välillä, jotka edustavat lukuja. Esimerkiksi float voidaan muuntaa int:ksi ja päinvastoin. Sen sijaan string-tyypin muuttaminen suoraan int-tyyppiin 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 suurempaan. Tietotyypin koko määräytyy sen mukaan, kuinka paljon dataa se voi sisältää, mitattuna bitteinä. Esimerkiksi int voi sisältää 32 bittiä, kun taas long voi sisältää 64 bittiä, joten int voidaan muuntaa long-tyyppiin automaattisesti. Samoin float voidaan muuntaa double-tyyppiin ilman ongelmia.

Tässä on tietotyyppejä 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 saattaa hävitä. Esimerkiksi, kun float-arvo 3.14 muunnetaan kokonaisluvuksi, tuloksena on 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 muuttujalle val1 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

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 float voidaan muuntaa int:ksi ja päinvastoin. Sen sijaan string-tyypin muuttaminen suoraan int-tyyppiin 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 suurempaan. Tietotyypin koko määräytyy sen mukaan, kuinka paljon dataa se voi sisältää, mitattuna bitteinä. Esimerkiksi int voi sisältää 32 bittiä, kun taas long voi sisältää 64 bittiä, joten int voidaan muuntaa long-tyyppiin automaattisesti. Samoin float voidaan muuntaa double-tyyppiin ilman ongelmia.

Tässä on tietotyyppejä 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 saattaa hävitä. Esimerkiksi, kun float-arvo 3.14 muunnetaan kokonaisluvuksi, tuloksena on 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 muuttujalle val1 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