Ich habe eine Frage zum Formatieren einer Dezimalzahl zu einem bestimmten QString-Format. Grundsätzlich habe ich in meinem Programm ein Eingabefeld, das beliebige Werte annehmen kann. Ich möchte, dass der Wert in diesem Feld in das Format "+05.30" übersetzt wird (basierend auf dem Wert). Der Wert wird auf +/- 99,99 begrenzt.
Einige Beispiele umfassen:
.2 - & gt; +00.02
-1.5 - & gt; -01.50
9.9 - & gt; +09.90
Ich denke an einen Konverter wie diesen, aber es wird einige offensichtliche Probleme haben (keine führende 0, kein Vorzeichen +).
%Vor%Diese Frage hatte einige Ähnlichkeiten, verbindet aber nicht die Vorder- und Hinterkante.
Konvertiert ein int in einen QString mit Nullauffüllung (führende Nullen)
Irgendwelche Ideen, wie Sie dieses Problem angehen können? Deine Hilfe wird geschätzt! Danke!
Sie müssen das Zeichen nur manuell hinzufügen:
%Vor% Bearbeiten : Das Schlimmste ist, dass es tatsächlich eine interne Funktion gibt, QLocalePrivate:doubleToString
, die das erzwungene Zeichen und das Padding an beiden Enden gleichzeitig unterstützt, aber nur mit diesen Optionen verwendet wird in QString::sprintf
und nicht:
QTextStream
und sein <<
-Operator, der das Zeichen zum Anzeigen zwingen kann, aber nicht die Breite oder QString::arg
, wodurch die Breite, nicht aber das Vorzeichen erzwungen werden kann. Aber für QTextStream
könnte das ein Fehler sein.
Tags und Links c++ qt string-formatting qstring