Given:
#include <iostream>
#include <cmath>
#include <limits>
using namespace std;
int main() {
    // your code goes here
    double h = .1;
    double x = 1;
    int nSteps = abs(x / h);
    double rem = fmod(x, h);
    cout<<"fmod output is "<<rem<<endl;
    if(abs(rem)<std::numeric_limits<double>::epsilon())
        cout<<"fmod output is almost near 0"<<endl;
    rem = remainder(x,h);
    cout<<"remainder output is "<<rem<<endl;
    if(abs(rem)<std::numeric_limits<double>::epsilon())
        cout<<"remainder output is almost near 0"<<endl;
    return 0;
}
Given int(x/h) == 10, I would have expected the fmod() result to be near 0 but what i get is .0999999999. It is a significant difference. The result of remainder() still seem acceptable. Code could be tried at  http://ideone.com/9wBlva
Why this significant difference for fmod() result?
 
     
    