【发布时间】:2015-04-21 17:22:30
【问题描述】:
在返回之前,该类型是双精度型,此时它会被剪裁为整数。为什么是这样?任何帮助将不胜感激。
using namespace std;
double fac_counter = 1.0;
int factorial(double n) {
for (double i = 1.0; i <= n; i++)
{
fac_counter = double(fac_counter)*i;
}
return fac_counter;
}
【问题讨论】:
-
因为那是你在函数签名中写的。
-
嗯,有趣的是,即使你将函数类型从
int更改为double,使用cout时输出是int,但是当你使用printf()时,你会得到一个 double 值,想知道为什么会这样。
标签: c++ function integer type-conversion double