Just nu i M3-nätverket
Gå till innehåll

Convert. ToInt32


Macky

Rekommendera Poster

Hej

Jag undrar varför man måste använda sig av conver.ToInt32 (); för att kunna hantera int variabler i C#. I C man deklarerar int, float, etc.. variabler utan att använda någon extra funktion.

Länk till kommentar
Dela på andra webbplatser

Det beror på situationen. För att göra om en sträng till heltal så får du använda antagligen Convert.ToInt32 eller Int32.TryParse. Men för att göra om en double till int så kan man göra en vanlig cast.

double d = 40.0;
int i = (int)d;
Console.Out.Write(i);

Det beror helt enkelt på vad double i det här fallet innehåller. Eftersom det innehåller ett heltal som får plats i en Int32 så går det bra.

 

Men detta fall går mindre bra.

double d = double.MaxValue;
int i = (int)d;
Console.Out.Write(i);

Det är för att en double kan hålla större tal än int. Då kommer du få några "lite roliga" resultat. Så metoden för att konvertera till en int kan skilja sig beroende på mellan vilka typer du vill växla mellan och vad dessa innehåller.

 

Fast jag är osäker på att Convert klarar av att hantera siffror som är större än Int32.MaxValue.

Länk till kommentar
Dela på andra webbplatser

Tack för ditt svar!

Jag deklarerade int variabler i min Main funktion för att jag visste att variabler kommer att innehålla bara siffror och jag visste att jag kommer att jobba bara med siffror men jag fick fel och programmet ville att jag skulle konvertera dem. här är lite exempel på koden:

 

static void Main(string[] args)
       {

               int val,  eat;
               do
               {
                       Console.WriteLine(" Vad önskas?\n 1- Korv\n 2- Pizza\n 3- Glass");
                       val = Convert.ToInt32(Console.ReadLine());
               switch (val)
               {
                   case 1:
                       Console.WriteLine(" Du valde Korv\n Välja en alternativ\n 1- föratt  Äta här\n 2- för att Ta med");
                       eat = Convert.ToInt32(Console.ReadLine());

Länk till kommentar
Dela på andra webbplatser

Eftersom Console.ReadLine kan läsa in samtliga tecken som finns på tangentbordet så vet ju .NET inte på förhand att du enbart vill använda siffror. Så därför måste du vara tydlig och använda en Convert.ToInt32.

 

Och det är aldrig fel att vara tydlig när man programmerar.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...