考虑我有这个号码: 123456789012345 。
想要使用这个半代码来展示它:
QString s;
QTextStream ss(&s);
int n = 123456789012345;
ss << n;
lineEdit -> setText(s);
它显示的数字不正确(负数),最多只能运行10位数。
如何正确使用15位数?
答案 0 :(得分:2)
只需指定一个能够保存这些数字的数据类型,例如unsigned long long
:
#include <iostream>
using namespace std;
int main() {
unsigned long long n = 123456789012345;
// ^^^^^^^^^^^^^^^^^^
cout << n;
}
请参阅Live Demo
QTextStream
的行为应与std::ostream
的行为相同。
在qulonglong和QTextStream & QTextStream::operator<<(qulonglong i)
答案 1 :(得分:1)
如前所述,int
太小,无法容纳多少位数值。我个人更喜欢明确我想要的内容,因此我会使用quint64
或uint64_t
。你也不需要文本流只是为了在一个字符串中放一个数字,有一个函数:
quint64 n = 123456789012345;
lineEdit->setText(QString::number(n));