ToMmM Skrevet 10. desember 2010 Del Skrevet 10. desember 2010 Prøver å lage et program som tolker data fra GPS, men jeg sliter med å gjøre string om til double. Jeg får meldingen "Input string was not in a correct format." når det kommer til tmp2 = Double.Parse(data[7]); Hva har jeg gjort galt? Her er koden: private void serial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { CheckForIllegalCrossThreadCalls = false; string[] data = serial.ReadLine().Split(','); string tmp; double tmp2=0; if (data[0] == "$GPRMC") { box.AppendText(data[0]); tmp2 = Double.Parse(data[7]); tmp2 = tmp2 / 1.852; tmp = Convert.ToString(tmp2); speedbox.Text = tmp; } } Lenke til kommentar
GeirGrusom Skrevet 10. desember 2010 Del Skrevet 10. desember 2010 Vær obs på at noen steder bruker de punktum som desimaltegn, men i Norge bruker vi komma av en eller annen grunn. Derfor vil standard konverteringen også bruke komma (ettersom det er det som er satt i instillingene dine) For å fikse dette, gjør du følgende: Double.Parse(data[7], System.Globalization.NumberFormatInfo.InvariantInfo); Da burde det funke. Lenke til kommentar
ToMmM Skrevet 10. desember 2010 Forfatter Del Skrevet 10. desember 2010 Takk, det virket. Lenke til kommentar
Manfred Skrevet 30. desember 2010 Del Skrevet 30. desember 2010 Når du ikke har en try-catch der ville jeg uansett brukt en double.TryParse() i stedet - for å slippe exception handling på den. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå