添加两个整数并打印结果,当我使用`int`它正确但当我使用`double`它错了?

时间:2015-10-21 12:07:26

标签: c++

输入两个整数a和b,1&lt; = a,b <= 10 ^ 6。打印他们的总和。

代码使用int:

int a, b;
cin >> a >> b;
cout << a + b;

代码使用double:

double a, b;
cin >> a >> b;
cout << a + b;

我将这些代码提交给在线评判网站后,第一个代码可以通过所有5个案例,但第二个代码只能通过3个,其他2个代码都是错误答案。

但由于double包含int的范围,为什么它不能通过int可以传达的某些情况?我知道使用double代替int可能会浪费内存,但我认为这不会导致任何错误。

此外,使用double时,如果我使用printf("%.0lf", a + b);打印结果,它也可以传递所有5个案例。

我知道这是一个非常简单的程序,但我无法弄清楚为什么使用double会出错。

1 个答案:

答案 0 :(得分:1)

当结果大于或等于10 ^ 6时,它将以科学记数法cout打印,而在线法官不接受。