请看下面这段代码
输出是:
-30.912
4.81036e+009
为啥呢?因为类型转换的问题,前面都是uint32_t类型来计算,因此一旦小于0,就会出现一个很大的数,最终导致的结果也不是预期的,而一开始就用0.0f的话,事实上是将所有的数字都变成了float,它可以表示很大的数,因此不会出错。
请看下面这段代码
输出是:
-30.912
4.81036e+009
为啥呢?因为类型转换的问题,前面都是uint32_t类型来计算,因此一旦小于0,就会出现一个很大的数,最终导致的结果也不是预期的,而一开始就用0.0f的话,事实上是将所有的数字都变成了float,它可以表示很大的数,因此不会出错。