从这里和谷歌,我认为“二进制表达式 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/