Slight error in transform.forward

I get some slight errors when instantiating a prefab to a place defined by myGO. myGo is placed in my scene and has rotation x=270.

GameObject go = Instantiate(somePrefab, myGO.transform.position, myGO.transform.rotation) as GameObject;
print(go.transform.forward.z);

this prints: -1.192093E-07

Thats pretty close to zero so why should I care? …because moving the new instantiated object around, without touching its z coordinate gives me slowly slowly more and more error to a point where its to far from z=0.

Why is this so, and how can I fix it without manually putting transform.position.z=0 each frame, which i find not very optimized…

You can’t. Inaccuracy in floating points is something you will have to take into account whenever you work with floats (whether it be Unity or any other development environment).

The wikipedia entry for floating points has an explanation of floating point accuracy:
http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems