String in double Konvertieren Probleme mit dem Trennzeichen
-
Hallo Community,
ich trenne einen String in dem mehrere Winkelangaben vorhanden sind und will dann die einzelnen Winkel in einen double-Wert konvertieren. Hierbei hab ich das Problem dass er einfach das Trennzeichen "." übergeht und so aus dem Wert 123.456 plötzlich der Wert 123456 entsteht. Hab schon einige Funktionen ausprobiert aber komme nicht weiter kenne mich leider einfach nicht gut genug aus. Hier mal der Quelltextausschnitt://Einlesen sLine[i] = sr ->ReadLine()+"\r\n"; //Splitten gesplittet = sLine[i] ->Split(chars); //Konvertieren in double //d_Hz = System::Xml::XmlConvert::ToDouble(gesplittet[0]); //d_V = System::Xml::XmlConvert::ToDouble(gesplittet[1]); //d_Hz = System::Convert::ToDouble(gesplittet[0]); //d_V = System::Convert::ToDouble(gesplittet[1]); double d_Hz = Double::Parse(gesplittet[0]); double d_V = Double::Parse(gesplittet[1]); //Umwandlung in Bogenmaß db_Hz=d_Hz*(Pi/180); db_V=d_V*(Pi/180)
Wäre super wenn jemand mir Helfen könnte! Bin echt am verzweifeln
Danke
-
Schau mal hier, (fast) selbes problem: http://stackoverflow.com/questions/3059587/c-sharp-float-to-string-conversion-decimal-separator-problem
Also
Double::Parse(gesplitted[0], CultureInfo::InvariantCulture
oder so ähnlich.
-
Danke! ja mit
double d_Hz = Double::Parse(gesplittet[0], CultureInfo::InvariantCulture);
funktioniert es. Man muss aber vorher noch
using namespace System::Globalization;
ergänzen. Kann jetzt mit dem Wert rechnen was mich aber immer noch wundert ist, dass er wenn ich mir den Wert in eine .txt Datei ausgeben lasse den Wert trotzdem mit "," schreibt. Hoffentlich bereitet mir das nicht noch weitere Schwierigkeiten für mein Programm. Muss die Datei nämlich auch wieder einlesen und mit ihr weiterarbeiten.
-
Convert::ToString akzeptiert diesen Parameter auch
Liegt an der Landeseinstellung des Computers, keine Ahnung ob man das irgendwie generell umstellen kann.. Aber sonst einfach immer Convert::TOXXXX mit diesem Parameter und du bist sicher ^^
-
Muss ich gleich mal ausprobieren hatte mir jetzt das hier zusammen gebastelt
String^ vor_Hz = System::Convert::ToString(Hz[i]); ent_Hz[i]= vor_Hz->Replace(",","."); String^ vor_V = System::Convert::ToString(V[i]); ent_V[i] = vor_V->Replace(",",".");
Werde mal deine Variante ausprobieren. Sieht nämlich auf jeden Fall mal sauberer aus