如果输入两个足够大的数字,整数会限制我对-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;
}
答案 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;