Rotation problem

My problem is: When i click(that’s when this runs) the object doesn’t only go up, which it should, it also goes a little right. What can it be?

	can = 1;
	transform.Rotate(0,0,3);
	yield WaitForSeconds(0.000001);
	transform.Rotate(0,0,3);
	yield WaitForSeconds(0.000001);
	transform.Rotate(0,0,3);
	yield WaitForSeconds(0.000001);
	transform.Rotate(0,0,3);
	yield WaitForSeconds(0.000001);
	transform.Rotate(0,0,3);
	yield WaitForSeconds(0.000001);
	transform.Rotate(0,0,3);
	yield WaitForSeconds(0.1);
	transform.Rotate(0,0,-3);
	yield WaitForSeconds(0.0001);
	transform.Rotate(0,0,-3);
	yield WaitForSeconds(0.0001);
	transform.Rotate(0,0,-3);
	yield WaitForSeconds(0.0001);
	transform.Rotate(0,0,-3);
	yield WaitForSeconds(0.0001);
	transform.Rotate(0,0,-3);
	yield WaitForSeconds(0.0001);
	transform.Rotate(0,0,-3);
	can = 0;

how much is a “little”… my gut would be “floating point error” given that rotations are handled by Quaternions and those euler angle components will be converted before being applied…

the gun, before today was shooting(it went up, and back down to its starting pos)

today, whats however, it goes a less up and down, and it goes 1 or 2 rotations to the right