C++ QApplication将std::的值更改为_字符串

C++ QApplication将std::的值更改为_字符串,c++,qt,C++,Qt,Qt似乎将返回的std::字符串的“解释”更改为_string(double) 例如: #include <iostream> #include <QApplication> #define VERSION 1.0 #define VSIZE 3 int main(int argc, char** argv) { std::string version = std::to_string(VERSION).substr(0, VSIZE); std::co

Qt似乎将返回的
std::字符串的“解释”更改为_string(double)

例如:

#include <iostream>
#include <QApplication>
#define VERSION 1.0
#define VSIZE 3

int main(int argc, char** argv) {
    std::string version = std::to_string(VERSION).substr(0, VSIZE);
    std::cout << version << std::endl; // everything fine

    QApplication app(argc, argv);

    std::cout << std::to_string(VERSION).substr(0, VSIZE); // no good
    return 0;
}

我认为这是Qt,因为这是发生这种情况的最薄示例,删除
QApplication
声明使其再次工作。如何修复此问题?

由于区域设置已更改,第二次的输出有所不同。我尝试从添加此代码,但仍然无效:(@GiovanniBerti:您尝试了
QLocale::setDefault(QLocale::c());
?在
QApplication
之前和之后都可以尝试
setlocale(LC_ALL,“c”)
。操作系统设置为什么?我在linux上,语言环境是“it_it.UTF-8”。
1.0
1,0