簡體   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