繁体   English   中英

错误:对二进制表达式无效的操作数为double double,但是我没有使用指针,仅使用了int

[英]Error: Invalid operands to binary expression double double, but I'm not using pointers, only using ints

从这里和谷歌那里,我认为“无效的二进制双精度和双精度操作数”错误意味着我试图在不允许(出于某种原因)或弄乱指针(我将其弄乱)时对doubles或float进行运算。尚未弄清楚)。 但是,我使用int进行了所有操作(我认为),并且我没有使用指针(我知道)。

我只是想尝试绘制出不同的方程式,我不太确定发生了什么。 我想使用浮点数,以便可以看到小数点,但我拼命尝试将所有内容都简化为整数,以获取我认为可以运行的简单程序。

我在这里想念什么?

#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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM