在Qt中使用大数字

时间:2017-01-31 21:18:16

标签: c++ qt

考虑我有这个号码: 123456789012345

想要使用这个半代码来展示它:

QString s;
QTextStream ss(&s);

int n = 123456789012345;
ss << n;
lineEdit -> setText(s);

它显示的数字不正确(负数),最多只能运行10位数。

如何正确使用15位数?

2 个答案:

答案 0 :(得分:2)

只需指定一个能够保存这些数字的数据类型,例如unsigned long long

#include <iostream>

using namespace std;

int main() {
    unsigned long long n = 123456789012345;
 // ^^^^^^^^^^^^^^^^^^
    cout << n;
}

请参阅Live Demo

QTextStream的行为应与std::ostream的行为相同。

qulonglongQTextStream & QTextStream::operator<<(qulonglong i)

中进一步检查

答案 1 :(得分:1)

如前所述,int太小,无法容纳多少位数值。我个人更喜欢明确我想要的内容,因此我会使用quint64uint64_t。你也不需要文本流只是为了在一个字符串中放一个数字,有一个函数:

quint64 n = 123456789012345;
lineEdit->setText(QString::number(n));