我只是尝试使用qDebug
打印一个数字,如下所示:
qDebug() << QString::number(03001);
但结果是:
"1537"
如果我尝试打印时没有第一个零:
qDebug() << QString::number(3001);
结果是正确的:
"3001"
为什么会这样?
我正在使用Qt 5.3。
前导零将使数字被解释为八进制文字。
八进制文字是数字零 (0),后跟零个或多个八进制数字 (0、1、2、3、4、5、6、7)
因此,这与 qDebug 没有任何关系,而是与C++解释整数常量的方式有关。
03001 是 C++ 中的八进制数。