i'm rotating my game object and i gave it the angle exactly 90 in the code but this is what i get in the inspector. and this 0.00001 make it move wrong as time passes so what can i do

public void DirectSnake()
{

        if (Input.GetButtonDown("Up") && Dir != Direction.Up && Dir != Direction.Down)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, 90);
            Dir = Direction.Up;
            Move();
        }
        if (CrossPlatformInputManager.GetButtonDown("Up") && Dir != Direction.Up && Dir != Direction.Down)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, 90);
            Dir = Direction.Up;
            Move();
        }
        if (Input.GetButtonDown("Down") && Dir != Direction.Up && Dir != Direction.Down)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, -90);
            Dir = Direction.Down;
            Move();
        }

        if (CrossPlatformInputManager.GetButtonDown("Down") && Dir != Direction.Up && Dir != Direction.Down)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, -90);
            Dir = Direction.Down;
            Move();
        }
        if (Input.GetButtonDown("Left") && Dir != Direction.Left && Dir != Direction.Right)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, 180);
            Dir = Direction.Left;
            Move();
        }

        if (CrossPlatformInputManager.GetButtonDown("Left") && Dir != Direction.Left && Dir != Direction.Right)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, 180);
            Dir = Direction.Left;
            Move();
        }
        if (Input.GetButtonDown("Right") && Dir != Direction.Left && Dir != Direction.Right)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, 0);
            Dir = Direction.Right;
            Move();
        }
        if (CrossPlatformInputManager.GetButtonDown("Right") && Dir != Direction.Left && Dir != Direction.Right)
        {
            HeadBone.eulerAngles = new Vector3(0, 0, 0);
            Dir = Direction.Right;
            Move();
        }
}

A quick and dirty workaround is to write a function wich rounds your vectors.
Something like:

public Vector3 roundVector(Vector3 vec)
	{
		return new Vector3(Mathf.Round(vec.x),Mathf.Round(vec.y),Mathf.Round(vec.z));
	}