铸造在C中运行不佳

Cod*_*ver -3 c casting

使用xcode编程C,这是f

#include <stdio.h>

int multiply (int x, int y) {
return x * y;
}
int main()
{

float result = (float) multiply (0.2, 0.5);
printf("the result is %f", result);

}
Run Code Online (Sandbox Code Playgroud)

我没有得到正确的价值,我得到0.0000 !! 我做了铸造,但我不知道什么是错的.

Car*_*rum 6

你的程序乘00.

multiply有两个int参数,让您0.20.5被隐式转换为int呼叫前.这截断两者0.

你的类型转换在这个程序中没有做任何事情,因为multiply(无论如何int)返回值将在赋值期间被隐式转换result.

multiply如果希望此程序正常工作,则需要更改(或添加浮点版本并调用它)的定义.