类型转换带来的问题

请看下面这段代码

输出是:

-30.912
4.81036e+009

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

你可能感兴趣的:(类型转换)