我有代码:

for(int i = 0; i < 314; i++){
    float nextSine = aSin(i/5);
    qDebug() << "i: "<<QString::number(i)<<" sin(i/5) = nextSine: "<<nextSine;
}

这是我得到的结果的一个示例:
i:  "303"  sin(i/5) = nextSine:  -0.304811
i:  "304"  sin(i/5) = nextSine:  -0.304811
i:  "305"  sin(i/5) = nextSine:  -0.966118
i:  "306"  sin(i/5) = nextSine:  -0.966118

有时候是对的,但有时候是错的,例如i==303

最佳答案

您可能想在运行函数之前强制转换为浮点型:

float nextSine = aSin((float)i/5.0);

09-25 18:46