Seite 1 von 1

Rundungs- bzw. Typumwandlungsprobleme

Verfasst: 17. September 2009 13:53
von donchris
Mein erstes Qt Programm sollte ein kleiner Taschenrechner sein, der soweit funktioniert.

Doch nun wollte ich die Genauigkeit erhöhen und die Funktion einer einstellbaren "Dezimalstellenanzahl" implementieren. Damit man einen größeren Spielraum hat, habe ich die "Berechnungs-" Variable von int auf qlonglong umgestellt.

Bei einigen Rechnungen fehlen aber Stellen, also wenn zB etwas wie 9232139 * 10^57 rauskommen sollte, bekomme ich zB: 92321398798.

Doch mein Hauptproblem ist im Moment eine Ausgabe mit einer vordefinierten Anzahl der Rundungsgenauigkeit (oder Anzahl der Kommastellen).

Code: Alles auswählen

//ui->lineEdit->setText(QString::number(act));
ui->lineEdit->setText(QString("%1").arg(act,0,'f',4));
Mein "alter" funktionierender Code steht auskommentiert, der neue beginnt in Zeile 2. Nun bekomme ich aber immer folgende Meldung:
error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
INFO: act ist eine qlonglong Variable, in der das Resultat liegt.

mfg
donchris

Verfasst: 17. September 2009 14:51
von Christian81
Es gibt keine Funktion QString::arg(qulonglong, int, char, int). Siehe http://doc.trolltech.com/4.4/qstring.html#arg-15