目录

  • 0 应用于
  • 1 浮点数取整
    • 1.1 强制转换
    • 1.2 函数
      • 1.2.1floor()
      • 1.2.2 ceil()
      • 1.2.3 rint()
      • 1.2.4 round()
    • 1.3 验证代码
    • 1.4 总结
  • 2 整数取整

约定:

 long double p;long long q;

0 应用于

https://blog.csdn.net/qq_40893824/article/details/105907220 1.3 节

1 浮点数取整

1.1 强制转换

 q = (long long )p;

1.2 函数

1.2.1floor()

 q = floor(p);

1.2.2 ceil()

 q = ceil(p);

1.2.3 rint()

 q = rint(p);

1.2.4 round()

 q = round(p);

1.3 验证代码

#include<bits/stdc++.h>
using namespace std;int main()
{long double p;long long q;scanf("%Lf", &p);while(1){getchar(); printf("p = % Lf\n\n", p) ;//1 (long long) 强制转换 取整 舍去小数部分 cout << "q = (long long )p; 后 舍去 " << p << " 小数部分" << endl;q = (long long )p;cout << "sizeof( (long long )p ) = "  << sizeof((long long )p) << endl; printf("q = %lld\n\n", q);//2 floor(p) 强制转换 取整 小于等于 x的最大整数 返回double型cout << "q = floor(p); 后 小于等于 " << p << " 的最大整数" << endl;q = floor(p);cout << "sizeof(floor(p)) = "  << sizeof(floor(p)) << endl;printf("q = %lld\n\n", q);//3 ceil(p) 强制转换 取整 大于x的最小整数 返回double型cout << "q = ceil(p); 后 大于 " << p << " 的最小整数" << endl;q = ceil(p);cout << "sizeof(ceil(p)) = "  << sizeof(ceil(p)) << endl;printf("q = %lld\n\n", q);//4 rint(p) 强制转换 取整 四舍五入 (+-)n.5时往绝对值小的方向 cout << "q = rint(p); 后  "<< p << " 四舍五入 ( (+-)n.5时往绝对值小的方向 )" << endl;q = rint(p);cout << "sizeof(rint(p)) = "  << sizeof(rint(p)) << endl;printf("q = %lld\n\n", q);//4 round(p) 强制转换 取整 四舍五入 (+-)n.5时往绝对值小的方向 cout << "q = round(p); 后  "<< p << " 四舍五入 ( (+-)n.5时往绝对值大的方向 )" << endl;q = round(p);cout << "sizeof(round(p)) = "  << sizeof(round(p)) << endl;printf("q = %lld\n\n\n", q);scanf("%Lf", &p);}system("pause");return 0;
}




返回类型 用 sizeof() 判断:

1.4 总结

使用形式 做法 返回
强制转换 (数据类型)p 去小数部分 整数
函数 floor(p) 小于等于 p的最大整数 整数
ceil(p) 大于p的最小整数 浮点数double
rint(p) 四舍五入,(+-)n.5时往绝对值小的方向 浮点数double
round(p) 四舍五入,(+-)n.5时往绝对值小的方向 整数

2 整数取整

结论:
在0 < M <= N, M, N∈Z 时,int nn = (N-1) / M +1,其中 除法 ‘/’ 往下取整

推导:

设N = Mk + r (0 <= r < M,k∈Z)
< > 向上取整,[ ] 向下取整

当 r > 0
左:< N / M > = < ( Mk + r ) / M >= < k + r / M >= k + < r / M > = k+1
右:[ (N - 1) / M ] + 1 = [ (Mk + r - 1) / M ] + 1 = [ k + (r - 1) / M ] + 1 = k+1+[ (r - 1) / M ] = k + 1

当 r = 0
左:< N / M > = k
右:[ (N - 1) / M ] + 1 = [ (Mk - 1) / M ] + 1 = [ ( M(k - 1) + M - 1 ) / M ] + 1
= [ k - 1 + (M - 1) / M ] + 1 = k + [ (M - 1) / M ]
= k

C语言取整(含强制转换)相关推荐

  1. c语言取整方法和四舍五入和 %d 和 %04d 和%-4d有什么区别

    c语言取整方法 (1)使用int强制转换 使用int强制转换的结果就是去掉小数部分.int a; a=int(1.2); //a=1 a=int(-1.2); //a=-1 (2)使用floor函数向 ...

  2. C 语言中结构体强制转换--实验

    2019独角兽企业重金招聘Python工程师标准>>> 对于C语言中结构体强制转换做了如下实验, 或许可以解惑一些问题 对于结构体, 我理解的属性有: 成员的顺序, 成员的类型,成员 ...

  3. c语言变量对那一次赋值有效,C语言取整+滤波方法.docx

    C语言取整+滤波方法.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  4. C 语言取整的几种方法

    C 语言取整的几种方法 1.doublex;   2.printf("%d",int(x))  取整;   3.printf("%d",int(x+0.5)) ...

  5. c语言用int取整取了小数_[c语言取整算法]C语言中float型数据怎么取整数部分算法或取小数部分...

    C语言中float型数据怎么 取整数部分算法 或取小数部分 float福n=12.223; int x=(int)n; float y=n-(float)x; C语言有哪些取整函数? C语言有以下几种 ...

  6. 计算机c语言运算符号取整,c语言取整(c语言四舍五入取整)

    C语言有以下几种取整方法:1. 直接赋值给整数变量.如:int i = 2.5: 或 i = (int) 2.5: 这种方法采用的是舍去小数部分2. 使用floor函数.floor(x)返回的是小于或 ...

  7. c++语言取整为什么要加0.5_C/C++之取整函数

    C/C++之取整函数 后面的double x放的是你的浮点型参数. 取整函数向上取整和向下取整有现成的函数.不过它们的缺点是正数和负数用到的函数是相反的容易混淆. 函数名函数说明------>右 ...

  8. c语言用int取整取了小数_c语言小数取整的公式 c语言取整规则

    C语言,三种取整舍小数的方法有什么? C语言有以下舍入方法: 1.直接给整型变量赋值.例如:int i=2.5或i=(int)2.5,此方法对小数部分进行舍入 2,C/C中的整数除法运算符有舍入函数( ...

  9. C 语言取整的几种方法6,C语言有以下几种取整方法:

    C语言有以下几种取整方法: 1.直接赋值给整数变量.如:    int i = 2.5; 或 i = (int) 2.5;    这种方法采用的是舍去小数部分. 2.C/C++中的整数除法运算符&qu ...

最新文章

  1. 下午就要考试啦~~附上自己做的考试范围
  2. GCC中的内嵌汇编语言
  3. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part2) 转
  4. 高效率学习Java编程提升自我
  5. java ora-12505_Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)
  6. 通过SQL Server操作MySQL的步骤和方法
  7. 常用于单片机的接口适配器模式C语言实现
  8. Java+Selenium+Testng自动化测试学习(三)— 断言
  9. [链表|多解法] leetcode 19 删除链表的倒数第N个节点
  10. 20191128每日一句感恩节
  11. 怎么批量修改文件夹名称?
  12. Python顺序结构
  13. docker安装php拓展
  14. 校园网免认证软件无为WiFi卡DNS解决教程
  15. 《东周列国志》第五十一回 责赵盾董狐直笔 诛斗椒绝缨大会
  16. 讯飞语音--唤醒Demo
  17. Cesium中对geojson的处理
  18. 苹果手机代数_讲知识:苹果手机已十年 命名规则多幻变
  19. scrapy框架爬取王者荣耀英雄数据
  20. C# 中的多态和虚方法,如何实现多态和使用虚方法?

热门文章

  1. start和run的区别
  2. 全面解析DIP插件工艺流程及注意事项
  3. php魔术方法call,PHP魔术方法__call()
  4. vertx rx java_光魔科技
  5. sysctl.conf文件的路径及作用
  6. HPL-用于分布式内存计算机的高性能Linpack基准的便携式实现测试
  7. 介绍一个最近在用的 IDEA 神器!
  8. C语言将字符转十六进制
  9. 【动手学树莓派】案例实操:点亮你的第一个LED(重点)
  10. wegame饥荒一直登录中_苹果游戏推荐ios帐号共享 一小时人生(希望之村)移动版 模拟经营沙盒世界饥荒游戏...