uint和int相乘,如果int为负,则相乘的结果非常大 。
unsigned int leftVal = 1;
int rightVal = -1;
float result = leftVal * rightVal ;
the result is : 4.29497e + 009 . 并不是你想要的“-1”结果。
但是如果改为:
int leftVal = 1;
int rightVal = -1;
float result = leftVal * rightVal;
the result is : -1 . 得到你想要的-1的结果。
编程的时候要当心这种情况,特别是由于此,而引起的bug .