以下错误消息是什么意思“错误:二进制表达式无效的操作数('double'和'double')”?

时间:2017-08-01 04:54:46

标签: c debugging cs50

当我在使用float输入时尝试在C中实现“%”运算符时发生了这种情况。 我参加了cs50课程,这是我正在尝试的问题集1的第四个问题。

这是代码

#include <cs50.h>
#include <stdio.h>

int main(void)
{
    printf("O hai! How much change is owed?\n");
    float x = get_float();
    if(x % 0.25 == 0)
    {
        printf("%.55f\n", x/0.25);
    }

    else if(x % 0.10 == 0)
    {
        printf("%.55f\n", x/0.10);
    }

    else if(x % 0.05 == 0)
    {
        printf("%.55f\n", x/0.05);
    }

    else if(x % 0.01 == 0)
    {
        printf("%.55f\n", x/0.01);
    }

}

1 个答案:

答案 0 :(得分:0)

模运算符(%)返回除法运算的余数,它仅适用于整数(C等效数据类型int,short,long)。由于您尝试在非整数(浮点数)上执行此操作,因此编译器不允许您编译程序并抛出错误。