C语言中常用的向下取整和向上取整的函数分别是 floor()ceil()。使用这两个函数需要包含数学函数库头文件 #include <math.h>

1. 向下取整

向下取整是将一个实数取离它最近的、比它小的整数值,结果向负无穷方向舍入

在C语言中,可以使用 floor() 函数实现向下取整:

#include <stdio.h>
#include <math.h>

int main()
{
	double x = 2.4;
    int result = floor(x); 
    printf("result = %d\n", result); // 输出result = 2 
	
	double y = -2.4;
    result = floor(y); 
    printf("result = %d\n", result); // 输出result = -3 
    
    return 0;
}

2.向上取整

向上取整是将一个实数取离它最近的比它大的整数值,结果向正无穷方向舍入。

在C语言中,可以使用 ceil() 函数实现向上取整:

#include <stdio.h>
#include <math.h>

int main()
{
	double x = 2.4;
    int result = ceil(x); 
    printf("result = %d\n", result); // 输出result = 3 
	
	double y = -2.4;
    result = ceil(y); 
    printf("result = %d\n", result); // 输出result = -2
    
    return 0;
}

需要注意的是,在进行取整时,应该考虑数据的精度问题,以及溢出和精度误差可能带来的影响。特别是在使用浮点数进行运算时,由于浮点数的精度有限,可能会产生舍入误差,因此在实际编程中需要特别注意。


另外,使用(int)强制将浮点数转换为整型时,实际上是向零取整(即取最接近且不大于该数的整数)。具体来说,对于正数而言,会将其向下取整为最接近且不超过该浮点数的整数;而对于负数,会将其向上取整为最接近且不低于该浮点数的整数。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐