我在Cpp中尝试了一些东西,但当我在用户定义的函数中使用相同的东西时,没有得到相同的输出
CODE
#include <iostream>
using namespace std;
int sum(int x, float y){
return (x / y);
}
int main(){
int a;
float b, c;
a = 12;
b = 5;
c = a / b;
cout << sum(12, 5) << endl;
cout << c;
}
输出2
2.4
为什么在两种情况下我都没有得到2.4 ?
sum的返回值为int。
#include <iostream>
using namespace std;
int sum(int x, float y){
return (x / y); //<< this is an int
}
int main(){
int a;
float b, c;
a = 12;
b = 5;
c = a / b; << this is a float
cout << sum(12, 5) << endl; //<< prints an int
cout << c; //<< prints a float
}
表达式
x / y
或
a / b
的类型是float。在下面的语句中,没有截断的表达式的值被赋给浮点变量c
。
c = a / b;
另一方面,调用
的返回值sum(12, 5)
由于函数的返回类型,被转换为类型int
。因此返回值可以被截断。
为了得到预期的结果,将函数的返回类型更改为类型float
float sum(int x, float y){
return (x / y);
}