Среда Qt Lang?

У меня возникла проблема, связанная со средой Qt Locale, когда я выполняю следующий код

QApplication(argc,argv) ;
float f = 42.5f
std::cout << std::to_string(f) ; // prints 42,5

Даже если бы мой компьютер перешел на французский язык, я бы хотел, чтобы моя программа была скомпилирована с использованием стандартного формата печати (т.е. 42.5 ). Есть ли способ сделать это с опцией компилятора?

0

Решение

Это прекрасно работает для меня:

main.cpp

#include <QString>
#include <QDebug>
#include <QCoreApplication>
#include <QLocale>

int main(int argc, char **argv)
{
QCoreApplication coreApplication(argc, argv);
float f = 42.5f;
qDebug() << QString::number(f, 'f', 1);
QLocale locale;
qDebug() << locale.toString(f, 'f', 1);
return coreApplication.exec();
}

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

Построить и запустить

qmake && make && ./main

Выход

"42.5""42.5"

Это может быть интересно для вас:

QString QString :: number (double n, char format = ‘g’, int precision = 6) [статические]

Возвращает строковый эквивалент числа n, отформатированный в соответствии с указанным форматом и точностью. Посмотрите Форматы Аргумента для деталей.

В отличие от QLocale :: toString (), эта функция не учитывает настройки локали пользователя.

0

Другие решения


По вопросам рекламы [email protected]