Zum Inhalt springen

In einem String ein Komma setzen


Gurki

Empfohlene Beiträge

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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();

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...