Показването на float като QString на QLabel показва G, където точка. трябва да тръгва

Опитвам се да покажа float в QLabel, но по някаква причина той продължава да показва "G" точно там, където трябва да отиде точката. С други думи, ако резултатът е 1.23445, той показва 1G23445.

Моля, погледнете следния код...

float myFloat = 2.09863591;
QString floatAsString = QString::number(myFloat, 'f',8);
qDebug()<< "Number as String: "<< floatAsString;// here it displays 2.09863591
ui->label->setText(floatAsString);// here it displays 2G09863591

Защо, когато покажа плаващия резултат на QLabel, той извежда „G“ вместо „.“?

какво ми липсва

Благодаря


person fs_tigre    schedule 05.01.2014    source източник
comment
Опитвали ли сте различни формати ('g', 'G' и т.н.?)?   -  person lpapp    schedule 05.01.2014
comment
Да, опитах QString::number(myFloat, 'g',8) и получавам същия резултат; Опитах също QString::number(myFloat, 'e',8) и получавам 2G09863591e+0. Опитах g, G, e и E.   -  person fs_tigre    schedule 05.01.2014
comment
"f" работи за мен. Вероятно правите нещо нередно. Поставянето на повече код би помогнало, предполагам, да закрепите проблема по-надолу.   -  person lpapp    schedule 05.01.2014


Отговори (1)


Вашият код работи добре за мен. Вероятно правите нещо нередно, например не сте възстановили правилно и т.н.

main.cpp

#include <QLabel>
#include <QApplication>

#include <QString>
#include <QDebug>

int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    float f = 2.09863591;
    QString s = QString::number(f, 'f', 8);
    qDebug()<< "Test:" << s;
    QLabel label;
    label.setText(s);
    label.show();
    return a.exec();
}

main.pro

TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4):QT += widgets
SOURCES += main.cpp

Изход

Number as String: "2.0986359"
person lpapp    schedule 05.01.2014
comment
Прав си, този код трябва да работи, току-що се опитах да покажа резултата в нов етикет и той проработи, може нещо да не е наред с етикета, който използвам. Ще актуализирам тази тема, ако намеря какво не е наред с етикета. Благодаря много - person fs_tigre; 05.01.2014
comment
Не знам защо, но току-що изтрих етикета и сложих нов и той работи добре, нямам представа какво не е наред с този етикет. - person fs_tigre; 05.01.2014
comment
FYI - Играх си с това, опитвайки се да намеря какво не е наред с етикета и открих, че шрифтът, който използвах с този етикет, причинява проблема. Шрифтът, който използвах, беше Geeza Pro и веднага щом го промених на Arial, той започна да показва . правилно. - person fs_tigre; 05.01.2014