That's because you're doing integer division.
What you want is really float division:
#include<iostream>
using std::cout;
int main()
{   
    float pie;
    pie = float(22)/7;//        22/(float(7)) is also equivalent
    cout<<"The Value of Pi(22/7) is "<< pie<<"\n";
    return 0;
}
However, this type conversion: float(variable) or float(value) isn't type safe. 
You could have gotten the value you wanted by ensuring that the values you were computing were floating point to begin with as follows:
22.0/7
OR
22/7.0
OR
22.0/7.0
But, that's generally a hassle and will involve that you keep track of all the types you're working with. Thus, the final and best method involves using static_cast:
static_cast<float>(22)/7 
OR
22/static_cast<float>(7) 
As for why you should use static_cast - see this:
Why use static_cast<int>(x) instead of (int)x?