The modulus of two floating-point or double numbers

Given two floating-point numbers, find the remainder.

Example:

Input: a = 36.5, b = 5.0
Output: 1.5
Input: a = 9.7, b = 2.3
Output: 0.5

Recommendation: Please address the practice first, before proceeding with the solution.

A simple solution is to do iterative subtraction.

C ++

//CPP program to find modulo of floating 
//point numbers.
#include <bits/stdc++.h>
using namespace std;
  
double findMod( double a, double b)
{
     double mod;
     //Handling negative values
     if (a <0)
         mod = -a;
     else
         mod =  a;
     if (b <0)
         b = -b;
  
     //Finding mod by repeated subtraction
      
     while (mod>= b)
         mod = mod - b;
  
     //Sign of result typically depends
     //on sign of a.
     if (a <0)
         return -mod;
  
     return mod;
}
  
//Driver Function
int main()
{
     double a = 9.7, b = 2.3;
     cout <<findMod(a, b);
     return 0;
}

Java

//Java program to find modulo of floating 
//point numbers
  
class GFG
{
     static double findMod( double a, double b)
     {
         //Handling negative values
         if (a <0 )
             a = -a;
         if (b <0 )
             b = -b;
      
         //Finding mod by repeated subtraction
         double mod = a;
         while (mod>= b)
             mod = mod - b;
      
         //Sign of result typically depends
         //on sign of a.
         if (a <0 )
             return -mod;
      
         return mod;
     }
      
     //Driver code 
     public static void main (String[] args)
     {
         double a = 9.7 , b = 2.3 ;
         System.out.print(findMod(a, b));
     }
}
  
//This code is contributed by Anant Agarwal.

Python3

# Python3 program to find modulo 
# of floating point numbers.
  
def findMod(a, b):
  
     # Handling negative values
     if (a <0 ):
         a = - a
     if (b <0 ):
         b = - b
  
     # Finding mod by repeated subtraction
     mod = a
     while (mod> = b):
         mod = mod - b
  
     # Sign of result typically 
     # depends on sign of a.
     if (a <0 ):
         return - mod
  
     return mod
  
# Driver code
a = 9.7 ; b = 2.3
print (findMod(a, b))
  
# This code is contributed by Anant Agarwal.

C#

//C# program to find modulo of floating 
//point numbers
using System;
  
class GFG {
      
     static double findMod( double a, double b)
     {
          
         //Handling negative values
         if (a <0)
             a = -a;
         if (b <0)
             b = -b;
      
         //Finding mod by repeated subtraction
         double mod = a;
         while (mod>= b)
             mod = mod - b;
      
         //Sign of result typically depends
         //on sign of a.
         if (a <0)
             return -mod;
      
         return mod;
     }
      
     //Driver code 
     public static void Main ()
     {
          
         double a = 9.7, b = 2.3;
          
         Console.WriteLine(findMod(a, b));
     }
}
  
//This code is contributed by vt_m.

PHP

<?php
//PHP program to find modulo  
//of floatingpoint numbers.
  
function findMod( $a , $b )
{
      
     //Handling negative values
     if ( $a <0)
         $a = - $a ;
     if ( $b <0)
         $b = - $b ;
  
     //Finding mod by repeated
     //subtraction
     $mod = $a ;
     while ( $mod>= $b )
         $mod = $mod - $b ;
  
     //Sign of result typically 
     //depends on sign of a.
     if ( $a <0)
         return - $mod ;
  
     return $mod ;
}
  
     //Driver Code
     $a = 9.7; $b = 2.3;
     echo findMod( $a , $b );
      
//This code is contributed by anuj_65.
?>

Output:

0.5

We can use the built-in fmod function to find out the modulus of two floating-point numbers.

C ++

//CPP program to find modulo of floating 
//point numbers using library function.
#include <bits/stdc++.h>
using namespace std;
  
//Driver Function
int main()
{
     double a = 9.7, b = 2.3;
     cout <<fmod (a, b);
     return 0;
}

PHP

<?php
//PHP program to find modulo of 
//floating point numbers using
//library function.
  
//Driver Code
$a = 9.7; $b = 2.3;
echo fmod ( $a , $b );
  
//This code is contributed
//by inder_verma
?>

The output is as follows:

0.5