Open In App

Can we use % operator on floating point numbers?

Predict the output of following program: Can % be used with floating point numbers in C++? 




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

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%' 

Time Complexity: O(1)

Space Complexity: O(1)



% 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: 




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

Output:

3.2999997

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




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

Output:

3.3

Article Tags :
C++