C ++计算器中的整数限制

时间:2013-03-23 22:18:41

标签: c++

如果输入两个足够大的数字,整数会限制我对-2147483648的回答。我可以将double v1 = 0, v2 = 0替换为我的代码吗?如果我这样做,有没有办法让它输出答案的全长(不是5e+17等)。

感谢。

#include <iostream>
using namespace std;

int main ()
{
cout << "Enter two numbers: " << endl;
int v1 = 0, v2 = 0;
cin >> v1 >> v2;
int sum = 0, val = v1;

while (val <= v2)
{
    sum += val;
    ++ val;
}
cout << "The sum of " << v1 << " through " << v2 << " inclusive is " << sum << endl;

return 0;
}

2 个答案:

答案 0 :(得分:3)

您使用的是32位整数。您可以使用64位整数int64_t。或者如果你需要更多的范围,那么使用具有任意精度的大整数类。

但我建议你不要使用浮点运算进行整数计算。这将是不准确的。

答案 1 :(得分:0)

  

我可以将双v1 = 0,v2 = 0替换为我的代码吗?

你可以,但是当你开始使用浮点数时会出现一些警告。小心他们。

  

有没有办法让它输出答案的全长

你想做一些iomanip

#include <iomanip>

std::cout << std::setiosflags(std::ios::fixed) << std::setprecision(2) << val;