我想将float变量舍入为int,而不使用任何内置方法.这就像
13.4 => 13
13.49 => 13
13.5 => 14
13.6 => 14
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我能够达到的最接近但不确定这是否有效.
int Roundoff(float num)
{
int temp = (int) num;
num *= 10;
if(num%10 >= 5)
{
return temp + 1;
}
else
{
return temp;
}
}
Run Code Online (Sandbox Code Playgroud)
你可以试试这个:
int Roundoff(float num) {
return num < 0 ? (int) (num - 0.5) : (int) (num + 0.5);
}
Run Code Online (Sandbox Code Playgroud)
有一个带负值的技巧(你不能只添加):0.5
-13.9 -> -14.0
-13.1 -> -13
Run Code Online (Sandbox Code Playgroud)
而且要小心,因为
int.MaxValue < float.MaxValue
int.MinValue > float.MinValue
Run Code Online (Sandbox Code Playgroud)