sam*_*fer 7 c casting floor ceil
我正在编写一些C代码,以反复将浮点数向上和向下舍入为整数值.标准C数学库包括函数floor()和ceil().我注意到函数的更快实现是直接转换为整数:
int up, down;
float test = 1.3548;
up = (int)(test + 1); //ceil()
down = (int)test; //floor()
Run Code Online (Sandbox Code Playgroud)
我做了一个快速检查,这似乎工作正常.
功能ceil()和floor()会比你用得到的返回不同的数字
up = (int)(test + 1);
down = (int)test;
Run Code Online (Sandbox Code Playgroud)
当你有一个负数.
如果你有:
float test = -1.3548;
up = (int)test; // ceil()
down = (int)(test-1); // floor()
Run Code Online (Sandbox Code Playgroud)
即使是最后一个语句也不是计算floor()何时test是整数的好方法.
除非你想以不同的方式处理正数和负数,并且when的特殊情况test是整数,你最好使用ceil()和floor().