C# Academy · Oppitunti

Lukujen muuntaminen tyypistä toiseen

Castit ja Convert-metodit.

Oppitunti 4/413 vaihetta

Lukujen muuntaminen tyypistä toiseen on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.

Miksi muuntaa?

Eri numeerisia tyyppejä ei voi aina yhdistää vapaasti. Joskus arvo on muunnettava tyypistä toiseen.

C# tarjoaa implisiittisiä muunnoksia, eksplisiittistä castingia, Convert-luokan sekä tekstin jäsentämisen. Tässä oppitunnissa käsitellään kaikki nämä.

Implisiittinen muunnos

Kun kohdetyyppi pystyy sisältämään kaikki lähdetyypin mahdolliset arvot, C# tekee muunnoksen implisiittisesti ilman ylimääräistä syntaksia.

int mahtuu tyypin double sisään, joten tämä sijoitus tehdään automaattisesti ja turvallisesti.

int whole = 7;
double real = whole;
Console.WriteLine(real);

Eksplisiittinen casting

Toiseen suuntaan muunnettaessa tietoja voi kadota, joten C# edellyttää eksplisiittistä castingia, jossa kohdetyyppi kirjoitetaan sulkeisiin.

Kun double castataan tyypiksi int, murto-osa katkaistaan kohti nollaa.

double price = 9.99;
int dollars = (int)price;
Console.WriteLine(dollars);

Casting voi aiheuttaa ylivuodon

Jos castaatte arvon, joka ei mahdu kohdetyyppiin, ylivuoto voi tuottaa väärän tuloksen.

Suuren long-arvon castaus tyypiksi int kierrättää arvon ympäri, joten varmistakaa aina, että arvo mahtuu kohdetyyppiin.

long big = 3000000000;
int small = (int)big;
Console.WriteLine(small);

Convert-luokka

System.Convert-luokka muuntaa tyyppejä menetelmillä, kuten Convert.ToInt32 ja Convert.ToDouble.

Toisin kuin casting, Convert.ToInt32 pyöristää double-arvon lähimpään kokonaislukuun sen sijaan, että katkaisisi murto-osan.

double value = 9.99;
int rounded = Convert.ToInt32(value);
Console.WriteLine(rounded);

Lukujen jäsentäminen tekstistä

Käyttäjän syöte ja tiedostot saapuvat tyypin string muodossa. Muuttakaa teksti luvuiksi käyttämällä menetelmiä int.Parse tai double.Parse.

Tekstin on oltava kelvollinen luku, tai jäsentäminen aiheuttaa poikkeuksen.

string text = "42";
int number = int.Parse(text);
Console.WriteLine(number + 8);

Turvallinen jäsentäminen TryParse-menetelmällä

int.TryParse yrittää tehdä muunnoksen ja palauttaa arvon true tai false poikkeuksen aiheuttamisen sijaan. Jäsennetty arvo palautetaan out-parametrin kautta.

Tämä on turvallinen tapa käsitellä epäluotettavaa syötettä.

bool ok = int.TryParse("abc", out int result);
Console.WriteLine(ok);
Console.WriteLine(result);

Luvuista merkkijonoiksi

Jokaisella numeerisella tyypillä on ToString-menetelmä tekstin tuottamista varten. Voitte antaa muotoilumerkkijonon, jolla hallitsette ulkoasua.

  • "C" valuutta
  • "F2" kiinteä muoto kahdella desimaalilla
  • "N0" tuhaterottimilla ryhmitellyt tuhannet
double amount = 1234.5;
Console.WriteLine(amount.ToString("F2"));
Console.WriteLine(amount.ToString("N0"));

int doubleksi jakamista varten

Yleinen syy muunnokseen on kokonaislukujen jaon välttäminen. Castatkaa toinen operandi tyypiksi double ennen jakoa, jotta desimaalit säilyvät.

Ilman castingia saisitte katkaistun kokonaislukutuloksen.

int scored = 7, total = 10;
double percent = (double)scored / total * 100;
Console.WriteLine(percent);

Casting, Convert vai Parse

Valitkaa oikea työkalu:

  • Cast numeeristen tyyppien välillä (katkaisee)
  • Convert monien tyyppien välillä (pyöristää ja käsittelee null-arvot)
  • Parse / TryParse muuttaa tekstin luvuiksi

Suosikaa TryParse-menetelmää kaiken sellaisen syötteen kanssa, jota ette hallitse.

Esimerkki muunnoksesta

Tämä kokonainen ohjelma lukee luvun tekstistä, muuntaa sen, suorittaa sillä laskutoimituksia ja muotoilee tulosteen valuutaksi.

string input = "19.95";
if (decimal.TryParse(input, out decimal price))
{
    decimal withTax = price * 1.20m;
    Console.WriteLine(withTax.ToString("F2"));
}

Pikatarkistus

Valitkaa turvallisin tapa muuntaa käyttäjän kirjoittama teksti luvuksi.

Kertaus

Opitte muuntamaan lukuja: käyttämään turvallisia implisiittisiä muunnoksia, eksplisiittisiä castauksia (jotka katkaisevat arvon ja voivat aiheuttaa ylivuodon), Convert-luokkaa (joka pyöristää) sekä jäsentämään tekstiä menetelmillä Parse ja turvallisemmalla TryParse-menetelmällä.

Opitte myös muotoilemaan luvut takaisin merkkijonoiksi ToString-muotoilukoodeilla. Castatkaa toinen operandi tyypiksi double kokonaislukujen jaon välttämiseksi.

Aloita maksutta

Opi C# tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
93
Oppitunnit
346

Usein kysytyt kysymykset

Onko oppitunti ”Lukujen muuntaminen tyypistä toiseen” ilmainen?

Kyllä – oppitunnin ”Lukujen muuntaminen tyypistä toiseen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Lukujen muuntaminen tyypistä toiseen”?

Castit ja Convert-metodit. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Lukujen muuntaminen tyypistä toiseen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä C# Academy-oppitunnilla?

Kyllä. Jokainen C# Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Numeeriset tyypit
  2. Aritmetiikka ja laskujärjestys
  3. Math-luokka
  4. Lukujen muuntaminen tyypistä toiseen
← Takaisin: C# Academy