Zum Inhalt springen

In einem String ein Komma setzen


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem, ich habe in C# einen String in dem "45" steht (ohne die ""). Nun soll zwischen der 4 und der 5 ein Komma (,) gesetzt werden. D.h. als Ergebnis soll ein "4,5" herrauskommen.

Mein Lösungsansatz sieht folgendermaßen aus (klappt auch so), ist aber meines Erachtens nach nicht sehr sauber und etwas deletantisch gemacht... Aber auf die Idee zu kommen war schon cool :bimei


string blende_inhalt = BitConverter.ToInt32(f.Value, 0).ToString();

string blende_inhalt2 = blende_inhalt.Substring(0, 1);

string blende_inhalt3 = blende_inhalt.Substring(1, 1);


blende_inhalt = blende_inhalt2 + "," + blende_inhalt3;

Nun meine Frage: Geht das sauberer? Wenn ja, wie :confused:

Geschrieben

mach doch einfach:


string blende_inhalt = (Convert.ToDouble(f.Value) / 10);

Du wolltest doch aus dem wert von f eine kommazahl machen, richtig? Hab grad keine IDE hier und lang kein c# mehr geschrieben, deswegen bin ich mir wegen der Syntax nicht ganz sicher :D Ich glaube der Konvertiert das automatisch in string beim zuweisen, ansonsten:

string blende_inhalt = (Convert.ToDouble(f.Value) / 10).ToString();

Geschrieben

Das Problem ist, es handelt sich nicht um die Methode "Convert", sondern um die Methode "BitConvert" d.h. es werden hier die Bytes in ein Int (o. andere Typen) konvertiert. Allerdings funktioniert "meins" nur mit Int! Wenn ich BitConvert.ToDouble angebe, dann kommt eine falsche Ausgabe.

Desweiteren funktioniert

Wenn die zahlen immer zweistellig sind: string ergebnis = f.Value[0] + "," + f.Value[1];

leider nicht.

Der Ansatz mit "/ 10" funktioniert zwar, aber "schneidet" bei einer 45 die 5 ab... (es wird nur noch die 4 angezeigt)

Geschrieben

f.Value ist eine Variable von PropertyItem, welches Bytedaten aus der Methode Bitmap liest. Kurz: es werden Bildinformationen ausgelesen.

Wenn du nur ein "," einfügen willst in einen String kannste auch die Insert Methode verwenden.

String.Insert-Methode (System)

Yeah das ist es! :)

Super, wieder was gelernt!!

Geschrieben

wenn "/ 10" die 5 abschneidet, warum machst du daraus keine Division mit Fließkommazahlen und schreibst "/ 10.0"?

sollte die Stelle in deinem Programm einen Engpass darstellen, dann ist das effektiver, als die Zahl, die geteilt werden soll, mittels Methodenaufruf in eine Fließkommazahl umzuwandeln

(ich weiß gerade nicht, ob Fließkommazahlen im Quelltext standardmäßig als floats oder als doubles angesehen werden - sollte 10.0 ein Floatwert sein, musst du noch den entsprechenden Literal verwenden oder sie casten)

allerdings kann ich nicht sagen, in wie fern das besser, als eine Stringoperation ist und da du nicht sehr viele Informationen dazu gegeben hast, was du eigentlich machen willst, kann ich auch nicht sagen, ob das eine Lösung für das Problem wäre...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...