C语言取整(含强制转换)
目录
- 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语言取整(含强制转换)相关推荐
- c语言取整方法和四舍五入和 %d 和 %04d 和%-4d有什么区别
c语言取整方法 (1)使用int强制转换 使用int强制转换的结果就是去掉小数部分.int a; a=int(1.2); //a=1 a=int(-1.2); //a=-1 (2)使用floor函数向 ...
- C 语言中结构体强制转换--实验
2019独角兽企业重金招聘Python工程师标准>>> 对于C语言中结构体强制转换做了如下实验, 或许可以解惑一些问题 对于结构体, 我理解的属性有: 成员的顺序, 成员的类型,成员 ...
- c语言变量对那一次赋值有效,C语言取整+滤波方法.docx
C语言取整+滤波方法.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...
- C 语言取整的几种方法
C 语言取整的几种方法 1.doublex; 2.printf("%d",int(x)) 取整; 3.printf("%d",int(x+0.5)) ...
- c语言用int取整取了小数_[c语言取整算法]C语言中float型数据怎么取整数部分算法或取小数部分...
C语言中float型数据怎么 取整数部分算法 或取小数部分 float福n=12.223; int x=(int)n; float y=n-(float)x; C语言有哪些取整函数? C语言有以下几种 ...
- 计算机c语言运算符号取整,c语言取整(c语言四舍五入取整)
C语言有以下几种取整方法:1. 直接赋值给整数变量.如:int i = 2.5: 或 i = (int) 2.5: 这种方法采用的是舍去小数部分2. 使用floor函数.floor(x)返回的是小于或 ...
- c++语言取整为什么要加0.5_C/C++之取整函数
C/C++之取整函数 后面的double x放的是你的浮点型参数. 取整函数向上取整和向下取整有现成的函数.不过它们的缺点是正数和负数用到的函数是相反的容易混淆. 函数名函数说明------>右 ...
- c语言用int取整取了小数_c语言小数取整的公式 c语言取整规则
C语言,三种取整舍小数的方法有什么? C语言有以下舍入方法: 1.直接给整型变量赋值.例如:int i=2.5或i=(int)2.5,此方法对小数部分进行舍入 2,C/C中的整数除法运算符有舍入函数( ...
- C 语言取整的几种方法6,C语言有以下几种取整方法:
C语言有以下几种取整方法: 1.直接赋值给整数变量.如: int i = 2.5; 或 i = (int) 2.5; 这种方法采用的是舍去小数部分. 2.C/C++中的整数除法运算符&qu ...
最新文章
- 下午就要考试啦~~附上自己做的考试范围
- GCC中的内嵌汇编语言
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(Part2) 转
- 高效率学习Java编程提升自我
- java ora-12505_Oracle SQL Developer连接报错(ORA-12505)的解决方案(两种)
- 通过SQL Server操作MySQL的步骤和方法
- 常用于单片机的接口适配器模式C语言实现
- Java+Selenium+Testng自动化测试学习(三)— 断言
- [链表|多解法] leetcode 19 删除链表的倒数第N个节点
- 20191128每日一句感恩节
- 怎么批量修改文件夹名称?
- Python顺序结构
- docker安装php拓展
- 校园网免认证软件无为WiFi卡DNS解决教程
- 《东周列国志》第五十一回 责赵盾董狐直笔 诛斗椒绝缨大会
- 讯飞语音--唤醒Demo
- Cesium中对geojson的处理
- 苹果手机代数_讲知识:苹果手机已十年 命名规则多幻变
- scrapy框架爬取王者荣耀英雄数据
- C# 中的多态和虚方法,如何实现多态和使用虚方法?
热门文章
- start和run的区别
- 全面解析DIP插件工艺流程及注意事项
- php魔术方法call,PHP魔术方法__call()
- vertx rx java_光魔科技
- sysctl.conf文件的路径及作用
- HPL-用于分布式内存计算机的高性能Linpack基准的便携式实现测试
- 介绍一个最近在用的 IDEA 神器!
- C语言将字符转十六进制
- 【动手学树莓派】案例实操:点亮你的第一个LED(重点)
- wegame饥荒一直登录中_苹果游戏推荐ios帐号共享 一小时人生(希望之村)移动版 模拟经营沙盒世界饥荒游戏...