Quaternion rotation

I am not sure is this right place to ask my question because it seems to be related more with programming, but on Stack Overflow nobody answered it. The problem is about quaternion rotation or rather result of this rotation – when I rotate unit vector(1,0,0) by 90degrees the X value is equal to something ridiculous like -5.96046e-08 instead of just 0 (same thing happen to Z value when I rotate this vector by 108degrees). It could be caused by how DirectXMath library works, but I believe its rather quaternion thing and hope somebody here can clarify this for me.

 XMVECTOR v = XMVectorSet(1.0f, 0, 0, 0);     float angle = XMConvertToRadians(90);    XMVECTOR q1 = XMQuaternionRotationRollPitchYawFromVector(                  XMVectorSet(0, angle, 0, 0) );    XMVECTOR q2 = XMQuaternionInverse(q1);     XMVECTOR result = XMQuaternionMultiply(q1, v);    result = XMQuaternionMultiply(result, q2);     XMFLOAT4 f;    XMStoreFloat4(&f, result);     PrintFloat4(f); ```