请考虑以下代码:
0.1 + 0.2 == 0.3  ->  false
0.1 + 0.2         ->  0.30000000000000004
为什么会出现这些不准确之处?
要在两个变量之间进行线性插值a并b给出一个分数f,我目前正在使用此代码:
float lerp(float a, float b, float f) 
{
    return (a * (1.0 - f)) + (b * f);
}
我认为这可能是一种更有效的方法.我正在使用没有FPU的微控制器,因此浮点运算是在软件中完成的.它们相当快,但它仍然可以添加或增加100个周期.
有什么建议?
为了清楚起见,在上面的代码中,我们可以省略指定1.0为显式浮点文字.