目录

  • 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. ceph 代码分析 读_Ceph OSD磁盘异常流量问题分析
  2. MATLAB 数值数组和字符串转换
  3. 某些情况下安卓引入so冲突的解决
  4. PHP关键字this指向当前对象指针
  5. 前端学习(2887):如何短时间内实现v-for createApp解决方案
  6. 设计一种网络分播软件
  7. 翻译:AI数据科学认证-2021年的最佳选择
  8. [Code] 收集各种语言对图片的处理算法实现 图片模糊
  9. git工作流学习记录
  10. 计算机操作系统第二章测试题及答案
  11. 笔试的图形推理题怎么做?
  12. vs2015离线安装QT的vsix工具
  13. dbfs和dbm的换算_「清晰易懂」dBFS、dBm、dBV、dBW、0dB、-3dB概念解析
  14. 快速排序(c语言实现)
  15. Orge的一本书下载
  16. 修改上传资源积分c币教程指导
  17. 三星支付存在漏洞可导致黑客进行交易劫持
  18. 一度智信:这些方法,帮你解决网店权重下降问题
  19. flac格式歌曲如何转换成mp3格式,flac转mp3详细图文教程 1
  20. ES6箭头函数以及promise/async/await测试案例

热门文章

  1. html个性化右键菜单
  2. Activiti6---获取节点信息
  3. openwrt智能路由器
  4. setDate() 解决跨月问题
  5. 偷天换日:网络劫持,网页js被伪装替换。
  6. SmartRefreshLayout 上拉加载下拉刷新
  7. 眼丽士肽/Eyeliss/CAS号:221227-05-0
  8. HDU 4940 Destroy Transportation system(无源汇上下界网络流)
  9. 次世代游戏需要具备哪些要素呢?
  10. 微信小程序实现客服消息自动回复(回复图片消息)