Transform rotation 180° becomes -5.008957e-06?

I wrote two simple scripts:
The first is:

using UnityEngine;
using System.Collections;

public class Cube : MonoBehaviour {
	public GameObject goSide;
	public Side sideToon;
	
	// Use this for initialization
	void Start () {
	goSide = new GameObject("NewSide");
		goSide.AddComponent<Side>();
		goSide.transform.parent=this.transform;
		goSide.transform.localEulerAngles=new Vector3(180.0f,90.0f,0.0f);
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

The second is this:

using UnityEngine;
using System.Collections;

public class Side : MonoBehaviour {}

I created a cube, attached the cube Script. When playing the inspector shows X Rotation= -5.008957e-06 (???)

When using other numbers strange results appear.
When using 90.0f everything is fine.

The rotation in Game seems correct. Some aftereffects occure.
Whats going on?

-5.008957e-06 can be rewritten as 0.000005009857 or in other words zero. If you look at your Y and Z rotation, they likely are not what you expect either. For many rotations, there are multiple different combinations of x,y and z values that are the same rotation. Unity has just picked a different combination from the one you expect (but the rotation is still the same). This can cause problems for code that reads the eulerAngles and expects particular values, but I don’t see that issue in the code above.

How do I write that code then?