Seite 1 von 1
QLineEdit ->doubleValidator ->immer 2 Nachkommastelle
Verfasst: 19. September 2007 15:37
von qtp
Hy,
folgendes Problem:
habe ein QLineEdit und dort werden Europreise ausgegeben. Ist das Ergebnis der Rechnung allerdings eine Zahl mit einer 0 am Ende (z.B. 2,50), dann steht im QlineEdit 2,5! Wie erreiche ich, dass immer 2 Nachkommastellen angezeigt werden?
Helft mir, ist wirklich wichtig!
Verfasst: 19. September 2007 15:42
von CaptnChaos
lineEdit->setInputMask("99.99");
Verfasst: 19. September 2007 15:42
von macman
Guckst Du QString und da bei arg(...) oder sprintf(...)
Verfasst: 19. September 2007 15:55
von qtp
@KernelPanic:
Is ja schön und gut, bei 12,5 wirds zu 12,50.
Aber ist der Betrag größer als 99, dann wird aus 123,5 -> 12,35 !!
Wie löse ich das?
Verfasst: 19. September 2007 16:04
von qtp
@macman
Habe mir die etlichen Einträge zu arg angeguckt, aber wirklich geklingelt hat's bei mir nicht!
Wie mach ich das denn mit .arg?
Verfasst: 19. September 2007 16:10
von CaptnChaos
mach so viele 9en bis wieviel du willst.
wenn du max 99999 darstellen willst, mach
setInputMask("99999.99");
Verfasst: 19. September 2007 16:13
von qtp
Ja, das hab ich schon versucht, aber wenn ich ("999999.99") eingebe, dann wird aus 123.45 -> 123 .45, d.h. er legt einfach Leerzeichen dazwischen!!
Is echt blöd...
Verfasst: 19. September 2007 16:32
von CaptnChaos
dann machs mit QString.arg();
Verfasst: 19. September 2007 16:34
von qtp
Ja aber wie??
Verfasst: 19. September 2007 16:35
von CaptnChaos
QString::sprintf("%.2d", meineNummer);
Verfasst: 19. September 2007 17:22
von qtp
Mmh, klappt nicht:
lineEdit->setText(sprintf("%.2d",QString::number(result)));
Verfasst: 19. September 2007 17:36
von CaptnChaos
Warte ich hol die Kristallkugel, damit ich sehen was der bei dir ausspuckt...
Was klappt den nicht?
Verfasst: 20. September 2007 07:36
von macman
Dafür brauchst Du eine Kristallkugel? Kollege A gibt falschen Tipp und Kollege B wendet den dann noch falsch an, könnte ja was Richtiges bei rum kommen. Deswegen gebe ich selten fertige Lösungen. Es nutzt einfach nichts wenn jemand etwas anwendet, ohne zu wissen was er da tut.
Vielleicht hast Du dich hierbei auch einfach nur vertippt. Einen Integer mit 2 Nachkommastellen habe ich noch nirgends gesehen
KernelPanic hat geschrieben:QString::sprintf("%.2d", meineNummer);
Richtig wäre hier '%.2f' gewesen, dann muss aber auch ein Float übergeben werden und kein Integer oder sogar String

Ich empfehle zur korrekten Anwendung
http://www.cplusplus.com/reference/clib ... rintf.html.
Verfasst: 20. September 2007 08:15
von CaptnChaos
ou jaaaa....
ouch.
naja, jeder hat ma en schlechten Tag... sry.
Verfasst: 20. September 2007 10:25
von qtp
Aah, jetzt funktionierts! Danke macman.
@KernelPanic: Sry, hatte meine Kristallkugel gerade verlegt...