Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
358 views
in Technique[技术] by (71.8m points)

c - Why we can't use operator % for float and double type operands?

I am new to C/C++, so I have a couple of questions about a basic type:

  1. I have read somewhere that the operator % can't be applied to float or double type operands. Then how can I check the divisibility of float or double type variables? I have shown my program with error below:

    #include <stdio.h>
    
    int main()
    {
        double n,k,t,i;
        int j=0;
        scanf("%f %f",&n,&k);
        i=0;
        while(i<n)
        {
            scanf("%f",&t);
            if(t%k==0)   /* error:invalid operands to binary %  */
                j++;
            i++;
        }
        printf("%d",j);
        return 0;
    }
    
  2. If a positive integer has a range up to 10^9, which qualifier should I use or how to achieve such a large range?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

then how can i check the divisibility of float or double type variables. ??`

Use fmod. % only work with integer operands. % does not work with floating point values because C already provides the fmod library function.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...