• 『C语言』深度走入取整 & 4种函数


    Hello🥂謓泽👋多多指教😛

    🥂前言

    🍻取整

    ⒈trunc - 0向取整

    ⒉floor -地板取整

    ⒊ceil-无穷大取整

    ⒋round-四舍五入

    🥂前言

    这篇博客就带大家深度理解以下什么是取整。我提到的"深度"就可以看出来这篇文章对取整讲解的还是很详细的并且是肯定有些知识点内容在里面的,但是不要觉得深度就是设计到很多很困难的知识点。实际上都是一些相对且容易的一些知识点,那么废话不多说进入正题👋

    🍻取整

    关于"取整"这个词似乎我们既熟悉又会感到陌生,熟悉是因为我们在编程的时候经常会用到取整。陌生是因为又没有好好深度理解过这取整,那么接下来就围绕取整作为一个探讨。

    🍊取整⇢取整字面意思非常好理解无非就是对整数取整像2.5是一个浮点数我们对其进行取整的话就是2的整数。📝代码示例如下↓

    1. #define _CRT_SECURE_NO_WARNINGS 1
    2. #include
    3. int main(void)
    4. {
    5. int a = 2.99;
    6. int b = -2.99;
    7. printf("a=%2d\n", a);
    8. printf("b=%2d\n", b);
    9. return 0;
    10. }

    运行结果🖊

    a =  2

    b = -2

    🍏说明⇢在上述代码当中我们可以知道并不是按照我们数学意义上的四舍五入而是不管你的小数位多大都的取整,这也是为什么我变量小数点取怎么大的原因也就是想让大家能非常直观的理解这个概念。一句话:直接把小数点后面的数字给省略了。

    🍈总结⇢「C语言」取整默认采用的是"0向取整"

    ⒈trunc - 0向取整

    trunc 的头文件是 ⇢ #include

    🍅拓展知识点⇢对于「C语言」来说它实际上是有一个取整函数的相信很多小伙伴们是不知道「C语言」有这个trunc取整函数的。

    trunc 参数如下↓

    1. double trunc ( double x);
    2. float truncf ( float x);
    3. long double truncl (long double x);

    📝代码示例如下↓

    1. #include
    2. #include
    3. int main(void)
    4. {
    5. printf("%2f\n", trunc(2.99));
    6. printf("%2f\n", trunc(-2.99));
    7. printf("%2d\n", (int)trunc(2.99));
    8. printf("%2d\n", (int)trunc(-2.99));
    9. return 0;
    10. }

    运行结果🖊

     2

    -2

     2

    -2

    🍊注⇢这里我们需要注意函数的返回值都是浮点类型,如果你是用整形打印的话你需要把类型进行强转成(int)

    🍏说明⇢在C语言当中默认采用的是0向取整的方式来进行的。

    ⒉floor -地板取整

    floor 的头文件是 ⇢ #include

    floor 参数如下↓

    double floor (double x);

    📝代码示例如下↓

    1. #include
    2. #include
    3. int main(void)
    4. {
    5. printf("%2d\n", (int)floor(2.99));
    6. printf("%2d\n", (int)floor(-2.99));
    7. printf("%2d\n", (int)floor(2.99));
    8. printf("%2d\n", (int)floor(-2.99));
    9. return 0;
    10. }

    运行结果🖊

     2

    -3

     2

    -3

    🍊注⇢地板取整我们需要记住它是往-∞当中靠近的,从上述代码当中的运行结果相信你也可以看的出来都是往-∞当中靠近的。

    ⒊ceil-无穷大取整

    ceil 的头文件是 ⇢ #include

    ceil 参数如下↓

    double ceil (double x);

    📝代码示例如下↓

    1. #include
    2. #include
    3. int main(void)
    4. {
    5. printf("%2d\n", (int)ceil(2.99));
    6. printf("%2d\n", (int)ceil(-2.99));
    7. printf("%2d\n", (int)ceil(2.99));
    8. printf("%2d\n", (int)ceil(-2.99));
    9. return 0;
    10. }

    运行结果🖊

     3

    -2

     3

    -2

    🍊注⇢我们需要记住它是往+∞当中靠近的,从上述代码当中的运行结果相信你也可以看的出来都是往+当中靠近的。

    ⒋round-四舍五入

    round 的头文件是 ⇢ #include

    round 参数如下↓

    1. double round (double x);
    2. float roundf (float x);
    3. long double roundl (long double x);

    📝代码示例如下↓

    1. #include
    2. #include
    3. int main(void)
    4. {
    5. printf("%2d\n", (int)round(2.99));
    6. printf("%2d\n", (int)round(-2.01));
    7. printf("%2d\n", (int)round(2.01));
    8. printf("%2d\n", (int)round(-2.99));
    9. return 0;
    10. }

    运行结果🖊

     3

    -3

     2

    -3

    🍊注⇢这就是在我们数学当中的四舍五入的方式。


    👌总结-最终采用哪种取决方式是根据你的应用场景来进行使用的~

    ★最后★ 点赞👍 关注👋 收藏📑  == 学会✔

  • 相关阅读:
    Android跨进程通信:Binder机制原理
    安卓系统分区 AB . 动态分区 .VAB到底是何物,分区不同怎么刷写第三方rec
    Spring AOP 的底层实现(spring官网描述)
    前端入门到入土?
    113. 路径总和ii
    <el-input> textarea文本域显示滚动条(超过高度就自动显示)+ <el-input >不能正常输入,输入了也不能删除的问题
    Web阶段一 静态网页
    Java 断点下载(下载续传)服务端及客户端(Android)代码
    有效的网络带宽监控策略
    不用任何 js 库,纯前端导出数据到 Excel / CSV 文件就这么简单几行代码
  • 原文地址:https://blog.csdn.net/weixin_52632755/article/details/125660435