此函数设置数字比较的 epsilon 值。
epsilon 用于确定两个存在舍入误差的数字是否足够接近以被视为 " 相等"。默认 epsilon 为 0.00001。
这在处理浮点数学时很有用,因为它可以减少使某些运算返回的值看起来不正确或与我们预期相反的"舍入误差"。例如,我们可能已经向精灵的图像索引添加了一个值,并期望结果是一个整数(5),但由于浮点数学的性质,实际的最终值最终类似于 5.000002,因此当我们进行以下检查时:
if (image_index == 5)
{
//do something
}
该代码的行为不符合预期并返回 false。不过,当 epsilon 设置为 0.00001 时,image_index 值将舍入为最接近的实数,即原始值的 +/-0.00001,使上述比较返回 true。
浮点计算的行为可能会有所不同,具体取决于游戏运行的平台。默认 epsilon0.00001 为不同平台上的舍入误差提供了安全范围。
epsilon 值将用于以下所有比较 运算符 :
sqrt 函数也使用它。
注意 将 epsilon 值设置为 0 将禁用所有舍入,使用值 1 将产生错误。
math_set_epsilon(epsilon);
参数 | 类型 | 描述 |
---|---|---|
epsilon | Real | 新的精度值(从 0 到 0.999999999)。 |
math_set_epsilon(0.0001);
这将为所有进一步的浮点运算设置精度值。