我标准化了一个向量,它的长度应该是1。但是长度方法的结果是0.99999982
我不知道这是对还是错。但是如果我打印出来,结果是 1。不是 0.99999982(由 cout 打印)
但是 std::cout 怎么知道它是 1 呢?[这是我的第一个问题]
另一个问题是为什么比较函数的结果是错误的。
我有一个如下的比较方法。而 lhs 是向量的长度,而 rhs 只是 1。
return (fabsf(rhs-lhs) <= FLT_EPSILON) ? true : false;
这种方法的结果是假的。
归一化向量的长度是否已经错误地被认为是归一化的?还是 epsilon 太小?
我做错了什么?