作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 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.2
和 0.5
会隐式转换为 int
在调用电话之前。这会将两者截断为 0
。
在此程序中,您的类型转换不会执行任何操作,因为 multiply
(这是一个 int
)的返回值将隐式获得无论如何,在分配到 result
期间都会进行转换。
如果您希望此程序正常工作,您需要更改 multiply
的定义(或添加浮点版本并调用它)。
关于C 中的转换效果不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16443571/
我是一名优秀的程序员,十分优秀!