Laden...

String->Double Parsen: Punkt vs Komma

Erstellt von rumpelstielz vor 15 Jahren Letzter Beitrag vor 15 Jahren 17.141 Views
R
rumpelstielz Themenstarter:in
3 Beiträge seit 2009
vor 15 Jahren
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

B
196 Beiträge seit 2007
vor 15 Jahren

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

R
rumpelstielz Themenstarter:in
3 Beiträge seit 2009
vor 15 Jahren

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 ","

3.825 Beiträge seit 2006
vor 15 Jahren

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

R
rumpelstielz Themenstarter:in
3 Beiträge seit 2009
vor 15 Jahren

ok, hab es hinbekommen


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

110 Beiträge seit 2008
vor 15 Jahren

Warum convertiertst du zwei mal nach double? Einmal reicht 😉

946 Beiträge seit 2008
vor 15 Jahren

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

O
778 Beiträge seit 2007
vor 15 Jahren

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