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.
Sida 1 av 1
Convert. ToInt32
#1
Skrivet 26 jun 2012, 13:20
Skrivet 26 jun 2012, 13:20
#2
Skrivet 26 jun 2012, 13:50
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.
Skrivet 26 jun 2012, 13:50
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.
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.
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.
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.
#3
Skrivet 26 jun 2012, 21:02
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());
Skrivet 26 jun 2012, 21:02
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:
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());
#4
Skrivet 27 jun 2012, 16:17
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.
Skrivet 27 jun 2012, 16:17
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.
Och det är aldrig fel att vara tydlig när man programmerar.
Sida 1 av 1
1 besökare läser just nu den här tråden, varav 0 medlem(mar) och 1 gäst(er)
Sök i Eforum
Senast obesvarade trådar
-
Process Lasso Pro FREE license
Forum: Program - övriga -
Word 2010 öppnas i "felsäkert läge" - tror jag
Forum: Ordbehandling - Word m fl -
Dell panka
Forum: Öppet forum! Ordet är fritt ... -
Mask On
Forum: Öppet forum! Ordet är fritt ... -
Hur får man game.cfg att fungera i CS: Global Offensive?
Forum: Datorspel -
10 gratisverktyg för säkert nät
Forum: Säkerhet - övrigt -
Varning för ”Nummerupplysningen.se”
Forum: Öppet forum! Ordet är fritt ... -
samsung galaxy note vcf fungera inte
Forum: Mobiltelefoner -
Minnesproblem & skrivskydd i Android
Forum: Mobiltelefoner -
Kombinationsruta som öppnar rapporter
Forum: Access

Logga in
Bli medlem


Citera flera inlägg
