当我执行以下代码时,我遇到了关于 Qt Locale 环境的问题
QApplication(argc,argv) ;
float f = 42.5f
std::cout << std::to_string(f) ; // prints 42,5
即使我的计算机将其语言环境设置为法语,我也希望我的程序能够使用我们的标准打印格式(即42.5
)进行编译。有没有办法通过编译器选项来做到这一点?
当我执行以下代码时,我遇到了关于 Qt Locale 环境的问题
QApplication(argc,argv) ;
float f = 42.5f
std::cout << std::to_string(f) ; // prints 42,5
即使我的计算机将其语言环境设置为法语,我也希望我的程序能够使用我们的标准打印格式(即42.5
)进行编译。有没有办法通过编译器选项来做到这一点?
这对我来说很好:
#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();
}
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() 不同,此函数不支持用户的区域设置。