Any thoughts on why this behavior, Is this expected?
Not immediately, can you demonstrate the problem without using JDBC? The JDBC project has its own issues setup on GitHub.
So, confirming the following query result on head.
select '1234567'::float4::numeric; -- 1234570
Not tested on 9.4.1 (or the last current 9.4.26 release.
The open question is whether the change in result is a bug. I'll agree it is not expected; but then again floating point and numeric compatibility is not something that I am expecting to make sense at a high-level; the devil is in the details.