Avatar billede swamboo Seniormester
12. maj 2011 - 22:27 Der er 9 kommentarer og
1 løsning

Split til decimal

Hejsa. Jeg har før "splittet" til string - hvordan gør jeg hvis jeg vil proppe det i en "decimal??

private decimal[] Uge_Log = new decimal[40];

Uge_Log = load_streng.Split(';');
Avatar billede crazysnap Seniormester
12. maj 2011 - 22:52 #2
Én løsning kunne være at bruge LINQ:

Uge_Log = load_streng.Split(';').Select(x => decimal.Parse(x)).ToArray();

Kræver at du indsætter "using System.Linq".
Avatar billede swamboo Seniormester
12. maj 2011 - 23:04 #3
crazy...: Den gav ikke mindre end 6 fejl :o)
Bla:
Error    2    The best overloaded method match for 'decimal.Parse(string)' has some invalid arguments
Avatar billede crazysnap Seniormester
12. maj 2011 - 23:15 #4
Det kræver selvfølgelig at du bruger .NET Framework 3.5 eller 4.0, for ellers er LINQ ikke inkluderet?
Avatar billede swamboo Seniormester
12. maj 2011 - 23:21 #5
Det gør jeg desværre ikke - det skal køre på en gammel PDA hvor der kun kan fungere en 2.0

Så det duer jo bare ikk... :(

Måske det er lettere at lave arrary-en til en string...
Avatar billede crazysnap Seniormester
12. maj 2011 - 23:31 #6
Ahh, du kører Compact Framework 2.0. Hvis frameworket har Array.ConvertAll, kan du jo godt bruge følgende:

Uge_Log = Array.ConvertAll<string, decimal>(load_streng.Split(';'), Convert.ToDecimal);
Avatar billede crazysnap Seniormester
12. maj 2011 - 23:37 #7
Og noget siger mig ConvertAll ikke er i CF 2.0. Så har jeg kun slave metoden tilbage:

List<decimal> lst = new List<decimal>();
foreach (string str in load_streng.Split(';'))
    lst.Add(Convert.ToDecimal(str));

Uge_Log = lst.ToArray();


/CS
Avatar billede swamboo Seniormester
15. maj 2011 - 17:17 #8
Jeg får følgende fejl:

System.FormatException was unhandled
  Message="FormatException"
  StackTrace:
    at System.Number.ParseDecimal()
    at System.Decimal.Parse()
    at System.Decimal.Parse()
    at System.Convert.ToDecimal()
    at rotate_screen.Form1.Indles_ugetjek()
    at rotate_screen.Form1..ctor()
    at rotate_screen.Program.Main()

Den brokker sig over denne linie:
lst.Add(Convert.ToDecimal(str));

formatexception was unhandled
Avatar billede swamboo Seniormester
15. maj 2011 - 21:53 #9
Jeg løste problemet med at ændre uge_log til en string, og så udføre beregningerne på den i stedet.
Det virker - og det er jo hensigten!

Men hvis det andet kunne komme til at virke, så kikker jeg gerne på det...
Avatar billede swamboo Seniormester
06. juni 2011 - 08:21 #10
Lukker spørgsmålet - tak for hjælpen. Ærgeligt mit udstyr er for gammelt til de gode forslag ikke virkede.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB