C语言取整方法总结
C语言有下面几种取整方法:
1. 直接赋值给整数变量
这样的方法採用的是舍去小数部分。
2、整数除法运算符‘ / ’取整
‘ / ’本身就有取整功能(int / int),可是整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数
floor(x)返回的是小于或等于x的最大整数。
如:
floor(3.5) = 3
floor(-3.5) = -4
4、使用ceil函数
ceil(x)返回的是大于x的最小整数。如:
ceil(3.5) = 4
ceil(-3.5) = -3
floor()是向负无穷大舍入,floor(-3.5) = -4。
ceil()是向正无穷大舍入。ceil(-3.5) = -3。
可是在C里面ceil和floor()函数是返回double型。
5.向上取整方法
在网上发现一个简单的向上取整方法。
这里我们用<>表示向上取整,[]表示向下取整,我们能够证明:
<N/M>= [(N-1)/M]+1 (0 < M <= N M,N∈Z)
不失一般性。我们设N = Mk+r (0 <= r < M,k∈Z),
(1)当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
(2)当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
综上。命题得证。
有了这个公式。我们在代码里能够这样计算:
int nn = (N-1)/M +1
式中' / '是往下取整的。
C语言取整方法总结的更多相关文章
- C语言的几种取整方法
C语言的几种取整方法 来源:http://blog.sina.com.cn/s/blog_4c0cb1c001013ha9.html 1.直接赋值给整数变量.如: int i = 2.5; 或 i = ...
- Javascript-数值运算 保留小数点位数,并对最后一位小数各种取整方法
今天遇到Javascript数值运算的坑,说到底,还是用得少啊.得多用多敲代码多遇坑. 先介绍以下三个Javascript number取整运算方法. Math.floor() 对一个数退一取整 例: ...
- JavaScript四种数值取整方法
一.Math.trunc() 1.定义 Math.trunc()方法去除数字的小数部分,保留整数部分. 2.语法 Math.trunc(value) 3.示例 console.log(Math.tru ...
- java的四种取整方法
java 中取整操作提供了四种方法:分别是: public static double ceil(double a)//向上取整 public static double floor(double ...
- Math的三个取整方法。
Math类中提供了三个与取整有关的方法:ceil.floor.round,这些方法的作用与它们的英文名称的含义相对应 1.ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil(1 ...
- Java关于Math类的三个取整方法
0x01 在java的Math类中有三个关于浮点数取整数的方法,分别是ceil (向上取整) floor(向下取整) round(四舍五入) 三个方法 0x02 ceil 向上取整,取整后总是比原来的 ...
- JS你所不知的小数取整方法
先介绍几种基本方法. 1.toFixed()方法 toFixed() 方法是属于 Number 对象的方法,可以把 Number 四舍五入到指定的小数位数,括号内为小数位数,范围为0~20,为0时即取 ...
- C#以及Oracle中的上取整、下取整方法
1.C#中: 上取整——Math.Ceiling(Double),即返回大于或等于指定双精度浮点数的最大整数(也可称为取天板值): eg: Math.Ceiling(1.01)=2; Ma ...
- c# 三种取整方法 向上取整 向下取整 四舍五入
Math.Round:四舍六入五取整 Math.Ceiling:向上取整,只要有小数都加1 Math.Floor:向下取整,总是舍去小数
随机推荐
- 看Spring Data如何简化数据操作
Spring Data 概述 Spring Data 用于简化数据库访问,支持NoSQL 和 关系数据存储,其主要目标是使数据库的访问变得方便快捷. SpringData 项目所支持 NoSQL 存储 ...
- 安装 配置 IIS
一 .找到 控制面板 ------ 在程序和功能 -----打开或关闭window 功能 :这里可能要等一下 才会显示 . 二‘.找到 Internet信息服务 ,勾选大部分如下图:点击 ...
- Robot Framework(十四) 扩展RobotFramework框架——创建测试库
4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...
- flex布局以及相关属性
容器的属性: 父元素设置display:flex:子元素即可使用flex布局. flex-direction 决定项目排列方向: .box { flex-direction: row | row-re ...
- mybatis中配置中引入properties文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- P1357 花园 (矩阵快速幂+ DP)
题意:一个只含字母C和P的环形串 求长度为n且每m个连续字符不含有超过k个C的方案数 m <= 5 n <= 1e15 题解:用一个m位二进制表示状态 转移很好想 但是这个题是用矩阵快速 ...
- 【传智播客】Libevent学习笔记(四):事件event
目录 00. 目录 01. 事件概述 02. 创建事件 03. 事件的标志 04. 事件持久性 05. 超时事件 06. 信号事件 07. 设置不使用堆分配的事件 08. 事件的未决和非未决 09. ...
- CodeForces - 1105D Kilani and the Game(多源BFS+暴力)
题目: 给出一张游戏地图和每个玩家的位置,每次能移动的步数.p个玩家轮流移动占领地图中的格子(当格子已经被占领时就不能在占领了)在每个玩家都不能移动时游戏结束. 问在游戏结束后,每个玩家占领的格子的数 ...
- 串的基本操作(KMP算法实现)
#include <iostream> #include <math.h> using namespace std; void StrAssign(char *T) { cha ...
- 对数组内容使用了json_encode返回汉字内容返回了空值
如果使用json_encode对数组进行转成JSON字符串时候,发现汉字的全部为空,这样可以说明的一点是你的页面上用的一定不是UTF8编码,在PHP手册中对json_encode中待编码的值已经说明所 ...