[BUG?] Vector3.Dot() product returns -1.47

Hello.
Just faced some strange behaviour of Vector3.Dot().

It can be reproduced by this code:

        Vector3 v3cTest = Vector3.forward;

        v3cTest = Quaternion.AngleAxis(45f, Vector3.up) * v3cTest;
        v3cTest = Quaternion.AngleAxis(45f, Vector3.up) * v3cTest;

        float testDot = Vector3.Dot(v3cTest, Vector3.forward);

Just run debugger and watch v3cTest value.
It will be like this:
testDot = Vector3.Dot( (1.0, 0.0, 0.0), (0.0, 0.0, 1.0));
So you 'll expect 0 but result will be -1.47.

Maybe i’m doing somthing wrong?

@doublemax
Okay its just -1.47 * 1/(10^7)?
And its was near but not 0 because of double rotation.
Got it, Thanks for explanation!