Laden...

String->Double Parsen: Punkt vs Komma

Letzter Beitrag vor 15 Jahren 8 Posts 17.197 Views
String->Double Parsen: Punkt vs Komma

Hallo Zusammen,
ich habe folgendes Problem: ich habe in einer edit box eine Zahl 1.234 stehen.
jetzt möchte ich diese Zahl als double der Form 1.234 umwandeln, er wandelt es aber immer in 1,234 um.
Ich denke ich muss die System.Globalization. global auf en-US setzen, aber wie?

danke im voraus
rumpel

intern arbeitet er immer mit . als trennzeichen
Wenn du das ganze als als string mit . haben willst musst du das dabei auch angeben

double doubleValue = 1.234;
string doubleString = doubleValue.ToString(System.Globalization.CultureInfo.InvariantCulture);

your fragile folded wings
are just tired from the pure blue sky
you dont have to force your smiles for anyone
its okay to smile...for yourself

er macht es einfach nicht. er wandelt es von 1.234 nach 1234 um.


ap2.setSig(Convert.ToDouble(comboBox2.Text));
lbap2sig.Text = ap2.getSigstrength().ToString(System.Globalization.CultureInfo.InvariantCulture);

um es nochmal deutlicher zu sagen.
in der combobox steht 1.234 in ap2.setSig() übergebe ich ein double und nach lbap2sig.text einen String der 1.234 formatiert sein soll.
Je nachdem was ich probiere lässt er entweder den "." ganz weg oder ersetzt ihn duch ein ","

Ja.

Im Deutschen ist 1.234 = 1234, da der Punkt ein Tausendertrennzeichen ist.

Syntax zu Double-Parse siehe MSDN : Double.Parse-Methode (String, NumberStyles, IFormatProvider)

Huch ! Was willst Du nun ?

Ausser 1,234 oder 1234 gibt es für eine Zahl keine andere Möglichkeit.

🤔

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

ok, hab es hinbekommen


ap1.setLat(Convert.ToDouble(Convert.ToDouble(comboBox3.Text, NumberFormatInfo.InvariantInfo)));
lbap1lat.Text = ap1.getLat().ToString(NumberFormatInfo.InvariantInfo);

Warum convertiertst du zwei mal nach double? Einmal reicht 😉

nimm doch double.Parse oder, noch besser, double.TryParse.

Zur eingabe ist eine NumericUpDownBox aber viel besser als eine TextBox (ich nimm mal an, dass das mit "edit box" gemeint ist).

Alternativ (aber nicht ganz so gut) kannst du auch eine MaskedTextBox verwenden, die sieht aus wie eine TextBox, verhindert aber Eingaben wie zum Beispiel ein "a".

Jedenfalls vermute ich, dass dein Programm abstürzen müsste, solltest du keine Zahl eingeben.

EDIT: Probleme mit den ganzen [TT] und [/TT]-Tags beseitigt.

mfg
SeeQuark

Zur eingabe ist eine NumericUpDownBox aber viel besser als eine TextBox (ich nimm mal an, dass das mit "edit box" gemeint ist).

auch nur bedingt, nämlich unter der Bedingung, dass definitiv eine Zahl eingegeben wird. Sowas wie <Kein Wert vorhanden> oder NULL kann man mit einer NumericUpDownBox nicht darstellen