Отображение числа с плавающей запятой в виде QString на QLabel отображает G вместо точки. должны пойти

Я пытаюсь отобразить поплавок в 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
К вашему сведению: я играл с этим, пытаясь найти, что не так с меткой, и я обнаружил, что шрифт, который я использовал с этой меткой, вызывал проблему. Я использовал шрифт Geeza Pro, и как только я сменил его на Arial, он начал отображать расширение . правильно. - person fs_tigre; 05.01.2014