Float Mod ,Not Working?

Revision en1, by dusht0814, 2016-10-01 04:07:11

Hello everyone,

I was working on a problem where i was given an integer p and was asked to calculate the number of digits after the decimal point in 1/p.

Ex:- Input: 100 Output: 2 as (1/100=0.01)

#include<bits/stdc++.h>
using namespace std;
int main()
{
float p;
cin>>p;
float q=1/p;
int cnt=0;
cout<<q<<"\n";
while(fmod(q,10.0)!=0)
{
q=q*10;
cnt++;
//cout<<q<<" "<<cnt<<"\n";
}
cout<<cnt-1<<"\n";
}

What i was trying to do is multiply (1/n) till it is divisible 10 and then simply print count-1 .

But the output this code is giving me is 12 in place of 2 for p=100.

Help would be appreciated :)

Tags fmod, float, decimal

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English dusht0814 2016-10-01 04:07:11 678 Initial revision (published)