Android World Coordinates

I’m trying to understand the screen to world conversions. I have the following code

Vector3f xWorldToScreen = cam.getScreenCoordinates(Vector3f.UNIT_X);

Vector2f screen = new Vector2f(xWorldToScreen.x, 0);

Vector3f xScreenToWorld = cam.getWorldCoordinates(screen, 0);

the result that I aspect is xScreenToWorld equals to Vector3f.UNIT_X but I have a different result:

xScreenToWorld has x coordinate smallest than 1 value. Which is the reason?

Thanks for any help

a) you go from 3d to 2d then back to 3d, you lose information.

b) why would it be unit_x, depending on how the cam is positioned and rotated UNIT_X world coord might not be on screen at all.