long double ReverseNumber(unsigned long i)
{
if(i<10) return i;
int div=1, digits=0;
while(i/div){
digits++; div*=10;
}
long double result = 0;
int tmp = digits;
for(int x=1; x<=digits; x++){
result += (i%10)*pow((long double)10, (int)--tmp);
i/=10;
}
return result;
}
This will work for a whole number. But any possible special cases are intentionally not handled, code not commented, code may not be fully optimised, gotchas intentionally not taken care of. I've left those as exercises for you to figure out.
If you need to support a number with decimal places, you'll have even more work to do. Ask a more specific question here if needed, with relevant code, showing us what you've tried.