我有2个数字,n = 1000000000000,j = 1.当我写
时 cout << n / j << endl;
控制台输出正确的答案,1000000000000。 但是,当我这样做时:
int d = n / j;
cout << d << endl;
控制台输出3567587328。 有人可以解释为什么会发生这种情况,我该怎么办?
答案 0 :(得分:0)
您使用的值大于整数变量可以存储的最大值。
如果你需要用如此大的数字进行算术运算,那么你将不得不使用处理这些数字的特殊类。也许您的C ++实现支持long long
数据类型?
答案 1 :(得分:0)
你可以拥有的最大int
是2,147,483,647,它比那里的10 ^ 12小,所以你有一个integer overflow。您可以使用int
而不是long long
。
答案 2 :(得分:0)
尝试使用long。
long long d = n / j;
cout << d << endl;