似乎Qt改变了解释'返回的字符串std::to_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;
}
输出结果为:
1.0
1,0
我认为它是Qt,因为这是发生这种情况的最薄的例子,删除QApplication
声明使它再次起作用。我该如何解决这个问题?