I have a simple example:

```
FVector TransformTest()
{
FVector translation;
{
translation.X = 0.0f;
translation.Y = 20.0f;
translation.Z = 0.0f;
}
FRotator rotation;
{
rotation.Roll = 0.0f;
rotation.Pitch = 0.0f;
rotation.Yaw = 45.0f;
}
FVector scale;
{
scale.X = 2.0f;
scale.Y = 1.0f;
scale.Z = 1.0f;
}
FTransform test_transform = FTransform(rotation, translation, scale);
return (test_transform.Inverse() * test_transform).GetTranslation();
}
```

And this function will return vector:

**[X = -10.0, Y = -10.0, Z = 0.0]**.

Expected:

**[X = 0.0, Y = 0.0, Z = 0.0]**.

I am doing transform, for example, **LocalToWorld** then **WorldToLocal**, those i start from some space and must return back into this space (with small inaccuracies), but i finish my way in strange space far away from the source.

I have submitted bug to Epic, and got a response:

**Is this behavior correct?

Is it a bug or not?**