我正在使用 Jon Skeet 的 Misc Util 库和 Marc 的 Operator 通用数学类。如果我正常进行数学运算,我会发现我不会发现的精度问题。
例如,与常规浮点类型运算符相比,在计算向量叉积时,我发现类似 .0001 的错误。
这是可以预料的吗?
[Test]
public static void Reproduce_OperatorT_Issue()
{
float termFive = Operator<float>.Multiply(5.3f, 56.0f);
float termSix = Operator<float>.Multiply(6.5f, 55.0f);
float newZ = Operator<float>.Subtract(termFive, termSix);
Assert.AreEqual(newZ, 5.3f * 56.0f - 6.5f * 55.0f);
}
输出:预期:-60.6999817f 但原为:-60.6999893f