数值转换的想当然

数值转换的想当然
float fTmp = 0.51
int iTmp = fTmp;

iTmp = ??

答案是0,相当于Floor了。

0.99也是0,但是0.9999999就是1,这是因为二进制表示十进制小数会有精度损失。

Ceil也不对,0.1也会+1。

想要四舍五入取整,选择RoundTo(fTmp, 0)。

你可能感兴趣的:(数值转换的想当然)