c - 错误 : Invalid operands to binary expression double double, 但我没有使用指针,只使用整数

标签 c

从这里和谷歌,我认为“二进制表达式 double 和 double 无效的操作数”错误意味着我试图在不允许(出于某种原因)时对 double 或 float 进行操作,或者我正在弄乱指针(我还没弄清楚)。然而,我认为这里发生的一切都是整数(我认为),并且我没有使用指针(我知道)。

我只是想尝试绘制不同的方程,我不太确定发生了什么。我想使用 float ,这样我就可以看到小数,但我将所有内容都简化为整数,拼命尝试得到一个我认为可以运行的简单程序。

我在这里缺少什么?

#include <stdio.h>

int pricedecrease(int x)
{
    return x - ((0.1 * x) ^ 3);
}

int main(void)
{
    printf("%d", pricedecrease(100));
}

最佳答案

您所看到的是类型促销0.1 是一个 double,因此 0.1 * x 也是一个 double

你可以像这样转换结果:

return x - ((int)(0.1 * x) ^ 3);

或者完全避免使用double:

return x - ((x / 10) ^ 3);

关于c - 错误 : Invalid operands to binary expression double double, 但我没有使用指针,只使用整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25195343/

相关文章:

c - Makefile 中的自动变量未正确扩展

c - mac os下通过sysctl调用获取/proc/<pid>/map信息

c++ - 我如何获得 xPy 的所有排列?

C:尝试将变量存储在特定的 XMM 寄存器中

c - 多个信号到达处理程序

c++ - 在 C++ 中执行之前分析整个代码

c - C中每行具有不同大小的二维数组

python - 如何调试或跟踪DBus?

c - 静态内存分配和动态内存分配哪个效率更高

c - 使文件/命令/可执行文件受密码保护