Can we use % operator on floating point numbers?

Predict the output of following program:

Can % be used with floating point numbers in C++?

filter_none

edit
close

play_arrow

link
brightness_4
code

#include <iostream>
int main()
{
    float f = 9.9f, m = 3.3f;
    float c = f % m;  // LINE 5
    std::cout << c;
    return 0;
}

chevron_right


The above program fails in compilation and compiler report the following error in line 5:
Output:

invalid operands of types 'float' and 'float' 
to binary 'operator%' 

% operator cannot be used with floating point numbers in C & C++.

What about Java and C#?
This behavior is different in Java & C#. % operator can be used on floating point numbers in these languages.

Consider following example of Java program:

filter_none

edit
close

play_arrow

link
brightness_4
code

class Test
{
    public static void main(String args[])
    {
        float f = 9.9f, m = 3.3f;
        float c = f % m;
        System.out.println(c);
    }
}

chevron_right


Output:

3.2999997

Same way try this C# program. It works fine:

filter_none

edit
close

play_arrow

link
brightness_4
code

using System;
class Test
{
    public static void Main()
    {
        float f = 9.9f, m = 3.3f;
        float c = f % m;
        Console.WriteLine(c);
    }
}

chevron_right


Output:

3.3

This article is contributed by Meet Pravasi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



My Personal Notes arrow_drop_up