【C语言:取整&4种函数】详解 | 您所在的位置:网站首页 › 数的取整 › 【C语言:取整&4种函数】详解 |
![]() 这篇文章带大家深度理解一下什么是取整,但是不要觉得深度就是涉及到很多很困难的知识点,实际上都是一些相对且容易的一些知识点。 01 【取整】 关于"取整"这个词似乎我们既熟悉又会感到陌生,熟悉是因为我们在编程的时候经常会用到取整。 陌生是因为又没有好好深度理解过这取整,那么接下来就围绕取整作为一个探讨。 ![]() 取整字面意思非常好理解,无非就是对整数取整,像2.5是一个浮点数我们对其进行取整的话就是2的整数。 代码示例如下: 代码语言:javascript复制#define _CRT_SECURE_NO_WARNINGS 1#includeint main(void){ int a = 2.99; int b = -2.99; printf("a=%2d\n", a); printf("b=%2d\n", b); return 0;}运行结果:a=2 b=-2 说明:在上述代码当中我们可以知道并不是按照我们数学意义上的四舍五入而是不管你的小数位多大都的取整。 一句话:直接把小数点后面的数字省略。 总结:【C语言】取整默认采用的是"0向取整"。 02 【trunc - 0向取整】 trunc 的头文件是 :#include 注意:对于「C语言」来说它实际上是有一个取整函数的,相信很多小伙伴们是不知道「C语言」有这个trunc取整函数的。 trunc 参数如下: 代码语言:javascript复制 double trunc ( double x); float truncf ( float x);long double truncl (long double x);![]() 代码示例如下: 代码语言:javascript复制#include#includeint main(void){ printf("%2f\n", trunc(2.99)); printf("%2f\n", trunc(-2.99)); printf("%2d\n", (int)trunc(2.99)); printf("%2d\n", (int)trunc(-2.99)); return 0;}运行结果:2 -2 2 -2 注意:这里我们需要注意函数的返回值都是浮点类型,如果你是用整形打印的话你需要把类型进行强转成(int)。 说明:在C语言当中默认采用的是0向取整的方式来进行的。 03 【floor -地板取整】 floor 的头文件是 :#include floor 参数如下: 代码语言:javascript复制double floor (double x);![]() 代码示例如下: 代码语言:javascript复制#include#includeint main(void){ printf("%2d\n", (int)floor(2.99)); printf("%2d\n", (int)floor(-2.99)); printf("%2d\n", (int)floor(2.99)); printf("%2d\n", (int)floor(-2.99)); return 0;}运行结果:2 -3 2 -3 注意:地板取整我们需要记住它是往-∞当中靠近的,从上述代码当中的运行结果相信你也可以看的出来都是往-∞当中靠近的。 04 【ceil -无穷大取整】 ceil 的头文件是:#include ceil 参数如下: 代码语言:javascript复制double ceil (double x);![]() 代码示例如下: 代码语言:javascript复制#include#includeint main(void){ printf("%2d\n", (int)ceil(2.99)); printf("%2d\n", (int)ceil(-2.99)); printf("%2d\n", (int)ceil(2.99)); printf("%2d\n", (int)ceil(-2.99)); return 0;}运行结果:3 -2 3 -2 注意:我们需要记住它是往+∞当中靠近的,从上述代码当中的运行结果相信你也可以看的出来都是往+∞当中靠近的。 05 【round -四舍五入】 round 的头文件是 :#include round 参数如下: 代码语言:javascript复制 double round (double x); float roundf (float x);long double roundl (long double x);![]() 代码示例如下: 代码语言:javascript复制#include#includeint main(void){ printf("%2d\n", (int)round(2.99)); printf("%2d\n", (int)round(-2.01)); printf("%2d\n", (int)round(2.01)); printf("%2d\n", (int)round(-2.99)); return 0;}运行结果:3 -3 2 -3 注意:这就是在我们数学当中的四舍五入的方式。 ![]() 活动 热门 等等!还没完,新月份新气象 这个中秋节还不放肆学一把? 针对各位卷王 我们更新升级了两门专属课程 帮你开拓编程之路 限时“骨折”优惠中…… 快来薅羊毛吧! 加静香QQ:1705214200了解详情 ![]() ![]() ![]() ![]() 阅读原文 了解老九学堂线下高薪就业班详情 |
CopyRight 2018-2019 实验室设备网 版权所有 |