string hjælp

Tags:    c#

Hej

hvordan kan jeg.

har en string hvor jeg taster et cpr nr. ind i o7o761428?

hvor på jeg vil flydt dem over i en int for at kunne regne det sidste cpr ciffer ud.

int a2 = (int) cpr [1] * 3; her har jeg så tastet 1 ind i og det giver 147 som kun skulle give 3*1=3

så mit problem er hvor da kan jeg flydt de tal fra en string over i en int



6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Det er fordi at index operatoren returnere en char. Og en char konverteret til int giver dig den pågældende chars Unicode værdi.

F.eks. har charen '1' Unicode-værdien 49.

Så det prøver du at kompensere for ved at subtrahere 49. I stedet kan man:

Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 20.09.2007 21:12 af Bruger #4522
Jeg forstår ikke helt hvad det er du vil.

Men du kan konvertere end streng til tal ved brug af Convert-klassen.

F.eks. vil følgende:

int i = Convert.ToInt32("1");

gemme værdien 1 i variablen i.



Jeg forstår ikke helt hvad det er du vil.

Men du kan konvertere end streng til tal ved brug af Convert-klassen.

F.eks. vil følgende:

int i = Convert.ToInt32("1");

gemme værdien 1 i variablen i.


Hej ja det ved jeg.

men hvis nu jeg har indtaster et cpr nr i string 10 ciffer
og vil have dem over i en int.
sæt 1 ovver i int efter det skal den tage det nkste tal og flyt over i en anden int

har prøver
string cpr= console.ReadLine();
int a1 = (int) cpr [0];
int a2 = (int) cpr [1];

men det lægger 48 til alt jeg sætter over i int
eks.

flytter 1 over i int a1 og udskriver a1 for at se hvad der er i a1.
a1 er nu 49? istedet for 1 så er det ikke nemt at lave en cpr udregning :)



Fold kodeboks ind/udKode 

Noget i den stil, koder ikke C# mere



Fold kodeboks ind/udKode 

Noget i den stil, koder ikke C# mere


Fold kodeboks ind/udKode 


Sådan er den lavet kan man ikke und gå at sige -48
og der ved sæt *4 op efter int t1 = (int)cpr[0] - 48;
istedet for at sige -48
int t1 = (int)cpr[0] *4;




Hvis du kigger i din kode, Morten, så bruger du et typecast, hvor du kaster en char til en int. Dette giver dig, som Jacob siger, Unicode værdien for karakteren.

Derfor skal du bruge Convert.ToInt32 eller Int.Parse, istedet for et typecast.



t