qSin和qCos错误源于

qSin and qCos wrong result from

本文关键字:错误 qCos qSin      更新时间:2023-10-16

我试图使用qSin和qCos,但我得到错误的值。这里有一个简单的try

for (float angle = 0 ; angle <= 360 ; angle += 90)
    qDebug() << angle << qSin(qDegreesToRadians(angle)) << qCos(qDegreesToRadians(angle));

和输出

0 0 1
90 1 -4.37114e-08
180 -8.74228e-08 -1
270 -1 1.19249e-08
360 1.74846e-07 1

为什么我不能在必须的地方得到0 ?

这不是Qt特有的问题,而是计算机无法以任意精度表示浮点数的普遍问题。例如,Cos(90)返回一个非常接近于0的值,但我需要0?