What am I doing wrong with the transform.position??

In my 2D game I have a mech-body on which I want to add some weapon-gameobjects. To do so I defined the position of where the gun should be placed by my script in an empty gameobject (GunSlot1). On my weapon prefab I have defined an empty gameobject which tells my script the connection point of the weapon. Here is my script:

#pragma strict

var speed : float;

var shoot : KeyCode;
var projectile : Rigidbody2D;
private var gunSlot1Transform : Transform;
private var gunSlot2Transform : Transform;

private var gun1ReloadTime : float;
private var gun2ReloadTime : float;
private var lastShotTime : float;

var weapons : Weapons;

private var weapon1ObjectTransform : GameObject;


function Start () {
	gun1ReloadTime = weapons.Kanone.reload;
	
	gunSlot1Transform = this.transform.Find("GunSlot1");
	
	weapon1ObjectTransform = Instantiate(Resources.Load("Kanone", GameObject));
	weapon1ObjectTransform.transform.parent = this.transform;
	weapon1ObjectTransform.transform.position -= gunSlot1Transform.position + weapon1ObjectTransform.transform.Find("ConnectionPoint").position;
	Debug.Log(weapon1ObjectTransform.transform.position);
}

To not confuse you, I’ve defined another class in another script called ‘Weapon’.

But my problem is that my definded transform-position of my GunSlot1 point and my Connection point somehow change when I start the game:

Here you can see the actual transform of my gunSlot1 and where it is placed in the Scene.

But now after I start the game the position changes somehow and in my Console I Logged the transform which now shows rounded values?? (I tried out some other values, it’s definetely rounded)

Please help me!! And it would be very kind if anyone could explain me how position works in unity because I had much different issues with position before and it doesn’t make any sense for me…

(and sorry for my bad english)

#pragma strict

 var speed : float;
 
 var shoot : KeyCode;
 var projectile : Rigidbody2D;
 private var gunSlot1Transform : Transform;
 private var gunSlot2Transform : Transform;
 
 private var gun1ReloadTime : float;
 private var gun2ReloadTime : float;
 private var lastShotTime : float;
 
 var weapons : Weapons;
 
 private var weapon1ObjectTransform : GameObject;
 
 
 function Start () {
     gun1ReloadTime = weapons.Kanone.reload;
     
     gunSlot1Transform = this.transform.Find("GunSlot1");
     
     weapon1ObjectTransform = Instantiate(Resources.Load("Kanone", GameObject));
     weapon1ObjectTransform.transform.parent = this.transform;
     weapon1ObjectTransform.transform.position = gunSlot1Transform.position;
     Debug.Log("XYZ :" + weapon1ObjectTransform.transform.position);
     Debug.Log("X :" + weapon1ObjectTransform.transform.position.x);
	 Debug.Log("Y :" + weapon1ObjectTransform.transform.position.y);
	 Debug.Log("Z :" + weapon1ObjectTransform.transform.position.z);
 }

I just found the solution for my problem, for some reasons the scale of my Mech was set to y = -1, which meant he was mirrored…