Hello I am trying to count the number of digits in a given double. I am encountering an infinite loop doing so. I tried to isolate each while statement and it works fine but when I combine them I am having an infinite loop on a the second while condition. here's the code
#include <iostream>
using namespace std;
int main()
{
//Counting digits of a number
double N, M, b;
int i, j, a;
cout << "This program will count how many digits the given whole number has.\n\n";
cout << "Please enter the Number: "; // N = 123.567 Digits should be = 6
    cin >> N;
    a = (int)N;
    M = N - a;
    b = M - int(M);
    j = 0;
     
    if (a == 0 && b == 0)
        cout << "You have entered number 0.";
    else
    {
        i = 0;
        j = 0;
        while (a > 0) //for the integer (whole number) part of the number
        {
            a /= 10;
            i++;
        }
        while (b != 0) //for the fractional part of the number 
        {
            j++;
            M *= 10;
            b = M - int(M);
        }
        cout << "Display i: " << i << endl; // i = number of whole number digits
        cout << "Display j: " << j << endl; // j = number of fractional digits
    }
    system("pause > 0");
}
 
     
    