Check whether given floating point number is even or odd - GeeksforGeeks

12 Apr, 2021
Given a floating-point number, check whether it is even or odd.We can check whether a integer is even or odd by dividing its last digit by 2. But in case of floating point number we can’t check a given number is even or odd by just dividing its last digit by 2. For example, 100.70 is an odd number but its last digit is divisible by 2.Examples : 
Input : 100.7
Output : odd

Input : 98.8
Output : even

Input : 100.70
Output : odd
Trailing 0s after dot do not matter.
Approach :
We start traversing a number from its LSB until we get a non-zero digit or ‘.’
If the number is divisible by 2 it is even else odd
If it is ‘.’ than it means decimal part of number is traversed and now we can check number is even or odd by dividing number by 2 whether it is 0 or non zero digit.
Below is the implementation of above approach :  
C++
Java
Python3
C#
PHP
Javascript
// CPP program to check whether given floating// point number is even or odd#include <bits/stdc++.h>using namespace std; // Function to check even or odd.bool isEven(string s){    int l = s.length();     // Loop to traverse number from LSB    bool dotSeen = false;    for (int i = l - 1; i >= 0; i--) {         // We ignore trailing 0s after dot        if (s[i] == '0' && dotSeen == false)            continue;         // If it is '.' we will check next digit and it        // means decimal part is traversed.        if (s[i] == '.') {            dotSeen = true;            continue;        }         // If digit is divisible by 2        // means even number.        if ((s[i] - '0') % 2 == 0)            return true;         return false;    }} // Driver Functionint main(){    string s = "100.70";    if (isEven(s))        cout << "Even";    else        cout << "Odd";    return 0;}
// Java program to check whether given floating// point number is even or oddimport java.util.*;import java.lang.*; public class GfG {     // Function to check even or odd.    public static boolean isEven(String s1)    {        int l = s1.length();        char[] s = s1.toCharArray();         // Loop to traverse number from LSB        boolean dotSeen = false;        for (int i = l - 1; i >= 0; i--) {             // We ignore trailing 0s after dot            if (s[i] == '0' && dotSeen == false)                continue;             // If it is '.' we will check next digit and it            // means decimal part is traversed.            if (s[i] == '.') {                dotSeen = true;                continue;            }             // If digit is divisible by 2            // means even number.            if ((s[i] - '0') % 2 == 0)                return true;             return false;        }         return false;    }     // Driver function    public static void main(String argc[])    {        String s = "100.70";        if (isEven(s))            System.out.println("Even");        else            System.out.println("Odd");    }}/* This code is contributed by Sagar Shukla */
# Python 3 program to check# whether given floating# point number is even or odd  # Function to check# even or odd.def isEven(s) :     l = len(s)      # Loop to traverse    # number from LSB    dotSeen = False    for i in range(l - 1, -1, -1 ) :                 # We ignore trailing        # 0s after dot        if (s[i] == '0'           and dotSeen == False) :             continue          # If it is '.' we will        # check next digit and it        # means decimal part is        # traversed.        if (s[i] == '.') :            dotSeen = True              continue                 # If digit is        # divisible by 2        # means even number.        if ((int)(s[i]) % 2 == 0) :              return True                      return False           # Driver Functions = "100.70"if (isEven(s)) :    print("Even")else :    print("Odd")     # This code is contributed# by Nikita Tiwari.
// C# program to check whether given floating// point number is even or oddusing System; public class GfG {     // Function to check even or odd.    public static bool isEven(string s1)    {        int l = s1.Length;         // char[] s = s1.toCharArray();         // Loop to traverse number from LSB        bool dotSeen = false;        for (int i = l - 1; i >= 0; i--) {             // We ignore trailing 0s after dot            if (s1[i] == '0' && dotSeen == false)                continue;             // If it is '.' we will check next            // digit and it means decimal part            // is traversed.            if (s1[i] == '.') {                dotSeen = true;                continue;            }             // If digit is divisible by 2            // means even number.            if ((s1[i] - '0') % 2 == 0)                return true;             return false;        }         return false;    }     // Driver function    public static void Main()    {        string s1 = "100.70";         if (isEven(s1))            Console.WriteLine("Even");        else            Console.WriteLine("Odd");    }} /* This code is contributed by Vt_m */
<?php// PHP program to check// whether given floating// point number is even or odd // Function to check// even or odd.function isEven($s){    $l = strlen($s);     // Loop to traverse    // number from LSB    $dotSeen = false;    for ($i = $l - 1; $i >= 0; $i--)    {         // We ignore trailing        // 0s after dot        if ($s[$i] == '0' && $dotSeen == false)        continue;         // If it is '.' we will        // check next digit and it        // means decimal part is        // traversed.        if ($s[$i] == '.')        {            $dotSeen = true;            continue;        }         // If digit is divisible by 2        // means even number.        if (($s[$i] - '0') % 2 == 0)            return true;                     return false;        }}     // Driver Code    $s = "100.70";    if (isEven($s))    echo "Even";    else    echo "Odd"; // This code is contributed by aj_36?>
<script> // Javascript program to check// whether given floating// point number is even or odd // Function to check// even or odd.function isEven(s){    let l = s.length;     // Loop to traverse    // number from LSB    let dotSeen = false;    for (let i = l - 1; i >= 0; i--)    {         // We ignore trailing        // 0s after dot        if (s[i] == '0' && dotSeen == false)        continue;         // If it is '.' we will        // check next digit and it        // means decimal part is        // traversed.        if (s[i] == '.')        {            dotSeen = true;            continue;        }         // If digit is divisible by 2        // means even number.        if ((s[i] - '0') % 2 == 0)            return true;                     return false;       }}     // Driver Code    let s = "100.70";    if (isEven(s))    document.write("Even");    else    document.write("Odd"); // This code is contributed by gfgking </script>
Output : 
odd
Time Complexity: O(|s|)
Auxiliary Space: O(1)
jit_t
subham348
gfgking
divisibility
Mathematical
School Programming
Strings
Strings
Mathematical
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Algorithm to solve Rubik's Cube
Program to convert a given number to words
Modular multiplicative inverse
Count ways to reach the n'th stair
Program to multiply two matrices
Python Dictionary
Arrays in C/C++
Inheritance in C++
Reverse a string in Java
Interfaces in Java