很可能,它确实提供了更高的精度。正如其他答案中提到的,不必来回转换也有好处,这将导致丢失中间结果——想象一下,你有一个浮点数为1.0(字节中的255)的像素,然后乘以0.65。然后将其转换回整数,那就是166.75,但我们向下舍入到166。所以我们损失了0.75。如果我们进行进一步的计算,误差可能会变大……当然,如果某个中间步骤导致我们的值超过255(1.0)或低于0(0.0),则完全可以保留新值一段时间,然后根据需要稍后“修复”它。当然,你不能在较小的空间中存储更多的数据(通常情况下),因此典型的浮点数比一个字节大4倍。一些GPU具有16位浮点数,其中包含11位尾数和4-5位指数,这使它们适用于大多数简单像素数学运算。但它仍然是双倍大小,但“精确度”并没有翻倍(我的一个同事花了很多时间尝试使用16位浮点数编写算法,以匹配32位浮点数的结果,但从未完全达到目标)。
powf
调用。 - znkr