向下取整
int(3.75)四舍五入
round(3.75)向上取整
math.ceil(3.75) math.modf(3.75)这个过程中究竟发生了什么?下面就开始尝试找到结果十进制小数的二进制表示:
整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序
小数部分:乘以2,然后取出整数部分,将剩下的小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止。如果永远不为零,则按要求保留足够位数的小数,最后一位做0舍1入。将取出的整数顺序排列。
以0.3为例
0.3x2=0.6 取整0,小数部分是0.6
0.6x2=1.2 取整1,小数部分是0.2
0.2x2=0.4 取整0,小数部分是0.4
0.4x2=0.8 取整0,小数部分是0.8
0.8x2=1.6 取整1,小数部分是0.6
0.6x2=1.2 取整1,小数部分是0.2
0.2x2=0.4 取整0,小数部分是0.4
0.4x2=0.8 取整0,小数部分是0.8
0.8x2=1.6 取整1,小数部分是0.6
0.6x2=1.2 取整1,小数部分是0.2
0.2x2=0.4 取整0,小数部分是0.4
0.4x2=0.8 取整0,小数部分是0.8
.... ,
python向上取整
相关推荐:《Python教程》
方法:
Python match.ceil函数
ceil(x)函数是向上取整,即取大于等于x的最接近整数。
import math
math.ceil(float(1)/2)