c语言 (int)(a+b)与int(a+b) 有区别吗

2025-02-26 20:07:31
推荐回答(5个)
回答1:

因为你的W是double型啊,把5赋给double的变量,要保证精度,只能在后面加0啊,输出也就是5.0了。

回答2:

return 是把a+b当作int来返回。如果int和float的大小相同,那么结果可以作为float来使用。
(int)(a+b) 不会使a+b有损。

回答3:

应该是把函数声明成了float 或double
例如:
double five(){return 5;}
结果肯定是浮点数

如果楼主声明的是int或long等整型
那么很可能是将返回值赋给了浮点数
int five(){return 5;}
double a;
a = five();

回答4:

没有区别。。。

返回的int型,即5,但是code中可能将返回值赋给了float或double型:
int func(int a, float b) {
return int(a+b);
}

...
float res = func(2, 3.21);
printf("%f\n", res); // output: 5.0

回答5:

有区别,得看a,b 本来是什么类型的;