例如:
float fPi = 3.14159F;
int iPi = (int) fPi;
C语言在强制类型转换的时候是直接将浮点数fPi的整数部分的值赋给iPi, 所以不会是我们数学的思维(四舍五入),那么要想让以上的转换遵循四舍五入的原则应该如何做?
经过网上的搜索后我找到了一种方法:
float fPi = 3.14159F;
int iPi = (int) (fPi + 0.5F);
负数的四舍五入:
float fP = -3.14159F;
int iP = (int) (fPi - 0.5F);
整合一下:
float fPi = 3.14159F;
int iPi = (int) (fPi + 0.5);
float fP = -3.14159F;
int iP = 0;
if (fP < 0.0f) // 负数
{
(int) (fPi - 0.5F);
}
else // 非负数
{
(int) (fPi + 0.5F);
}