在C中没有floor函数的情况下将浮点数舍入为整数值

时间:2017-10-20 11:24:33

标签: c function rounding floor

我需要在C中编写一个函数,将浮点数向下舍入为整数。例如,10.6变为10. 22.1249变为22.但是,我不能使用楼层功能。可以这样做吗?

1 个答案:

答案 0 :(得分:0)

地板

使用整数转换来向下舍入浮点数。

float yourFloat = 10.5;
int down = (int)yourfloat; //down = 10.

最近的整数

要舍入到最接近的整数,请将0.5f添加到浮点数,然后进行强制转换。

float f1 = 10.3, f2 = 10.8;
int i1, i2;
i1 = (int)(f1 + 0.5f); //i1 = 10
i2 = (int)(f2 + 0.5f); //i2 = 11

的Ceil

要向上舍入数字,请使用带有某些强制转换的if语句:

int result = (int)yourFloat;
if (yourFloat - (int)yourFloat > 0) {
    result++;
}