Ich habe eine solche numerische Zeichenfolge 2223,00
. Ich würde es gerne umwandeln 2223
. Dies ist: ohne die Informationen nach dem " , ". Angenommen, nach dem " , " werden nur zwei Dezimalstellen angezeigt . " .
Ich tat:
str = str.Remove(str.Length - 3, 3);
Gibt es eine elegantere Lösung? Vielleicht mit einer anderen Funktion? -Ich mag es nicht, explizite Zahlen zu setzen-
,
immer auf Position -3 befindet, ist die erste Lösung immer noch in Ordnung, aber eine vorzeitige Optimierung ist eine schreckliche Sache, für die Sie Ihre Zeit verschwenden müssen.Vielleicht das:
quelle
2
to übergeben möchten ,Split
da Sie keine weiteren Kommas benötigen.Dadurch erhalten Sie eine Zeichenfolge, die alles nach dem Komma ausschließt
Dies setzt natürlich voraus, dass Ihre Zeichenfolge tatsächlich ein Komma mit Dezimalstellen hat. Der obige Code schlägt fehl, wenn dies nicht der Fall ist. Sie möchten mehr Überprüfungen durchführen:
Ich gehe davon aus, dass Sie zunächst mit einer Zeichenfolge arbeiten. Wenn Sie zunächst mit einer Zahl wie einem Float oder Double arbeiten, können Sie diese im Idealfall einfach in eine umwandeln
int
und dann Folgendes tunmyInt.ToString()
:Dies analysiert das Double unter Verwendung der aktuellen Kultur (hier in den USA verwenden wir
.
für Dezimalstellen). Dies setzt jedoch wiederum voraus, dass Ihre Eingabezeichenfolge analysiert werden kann.quelle
Wenn Ihr Anfangswert eine Dezimalzahl in eine Zeichenfolge ist, müssen Sie konvertieren
In diesem Beispiel wähle ich die invariante Kultur, aber Sie können die gewünschte verwenden.
Ich bevorzuge die Verwendung der Formatierungsfunktion, da Sie nie wissen, ob die Dezimalstelle in Zukunft 2 oder 3 führende Zahlen enthalten kann.
Bearbeiten: Sie können auch verwenden
Truncate
, um alle nach dem, oder zu entfernen.quelle
Verwenden:
Ich bevorzuge hier aus zwei Gründen eine Erweiterungsmethode:
Example: f1.Substring(directorypathLength).SubstringFromEnd(1)
quelle
Sie können LastIndexOf und Substring zusammen verwenden, um alle Zeichen links vom letzten Index des Kommas innerhalb des Stichs abzurufen.
Zeichenfolge var = var.Substring (0, var.LastIndexOf (','));
quelle
Sie können verwenden
TrimEnd
. Es ist auch effizient und sieht sauber aus.quelle
"123,45".TrimEnd(',')
wird "123,45" zurückgegeben.Remove last characters from a string if this character is...
Passt einfach gut zu mir. Geschätzt."oppa/ ".Trim().TrimEnd('/');
Versuche Folgendes. Es hat bei mir funktioniert:
quelle
Verwenden Sie lastIndexOf. Mögen:
quelle