ToMmM Skrevet 10. desember 2010 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; } }
GeirGrusom Skrevet 10. desember 2010 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.
Manfred Skrevet 30. desember 2010 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.
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å