#include <iostream>
using namespace std;
int main()
{
    cout.precision(32);
    float val = 268433072;
    float add = 13.5;
    cout << "result =" << (val + add) << endl;
}
I'm compiling the above program with standard g++ main.cc
and running it with ./a.out 
The ouput I receive however, is,
result =268433088
Clearly, this is not the correct answer..Why is this happening?
EDIT: This does not occur when using double in place of float
 
     
    