C 中的转换效果不佳

标签 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);

}

我没有得到正确的值,我得到 0.0000 !!我进行了选角,但我不知道出了什么问题。

最佳答案

您的程序将 0 乘以 0

multiply 采用两个 int 参数,因此您的 0.20.5 会隐式转换为 int 在调用电话之前。这会将两者截断为 0

在此程序中,您的类型转换不会执行任何操作,因为 multiply(这是一个 int)的返回值将隐式获得无论如何,在分配到 result 期间都会进行转换。

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

关于C 中的转换效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16443571/

相关文章:

Python,从子列表中删除所有数字

java - 为什么 Java 在检查之后不假定类型?

c# - 转换为原始类型并用作参数?

java - Java中根据对象类型调用子类的方法

在c中为linux创建一个新线程?

c - 进程已完成,退出代码 (0xC0000005)

c - 这是什么格式?

c - Linux C : "Interactive session" with separate read and write named pipes?

c - 光学字符阅读代码或指南

sql - 将 varchar 转换到日期