python | 您所在的位置:网站首页 › Int取整函数 › python |
一、取整(int)
此函数是python内置的,无需导入任何模块;运算规则是将小数部分截断去掉。 比如int(3.4),就把【.4】截掉,结果是3;再比如int(-3.3),就把【.3】截掉,结果是-3。 二、近零(fix)此函数在numpy模块中,因此需要导入后再使用。 fix这个函数名不仅在numpy模块中有,在其他语言中也有,表示使浮点数向靠近0的方向取整。 from numpy import * print(fix(4.3)) # 4.0 print(fix(-4.2)) # -4.0 三、 近小(floor)或地板运算此函数在math模块中,需要导入后再使用;运算规则是向负无穷大(注意不是无穷小,无穷小是无限趋近于0)的方向取整。 from math import * print(floor(-4.3)) # -5 print(floor(4.2)) # 4 四、近大(ceil)或天花板运算此函数在math模块中,需要导入后再使用;运算规则是向无穷大的方向取整。 from math import * print(ceil(-4.3)) # -4 print(ceil(4.2)) # 5 五、四舍五入(round)此函数在Python中已内置,可直接使用。 print(round(-4.3)) # -4 print(round(-4.6)) # -5 print(round(4.3)) # 4 print(round(4.6)) # 5 六、取余(rem)和取模(mod) 6.0 取模运算和取余运算各是什么?参考文章:取模运算和求余运算的区别——huasion 对于整数a,b来说,取模运算或者求余运算的方法都是: 求整数商: c = a/b;「向无穷小取整就是c = fix(a / b),向负无穷小取整就是c = floor(a / b)」计算模或者余数: r = a - c*b。求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向趋近于0的方向舍入,也即fix()函数; 而取模运算在计算c的值时,向负无穷大的方向舍入,也即floor()函数。 因此,当a和b符号一致时,求模运算和求余运算所得的c的值一致,因此结果一致。但是当符号不一致的时候,结果不一样。具体来说,求模运算结果的符号和b一致,求余运算结果的符号和a一致。 在C语言中,%操作符表示“求余运算”;在Python语言中,%表示的是“取模运算”。 那Python中如何实现求余运算呢?至今我还没找到一个便捷的直接用非自定义函数实现的方法。 6.1 numpy模块中的不优雅之处在numpy中有两个函数remainder和mod,这两个函数按道理来说一个是取余、一个是取模,但是两个函数的求解结果完全一样。不符合正常的取余运算看前者符号,取模运算看后者符号的普遍规律,非常不雅。 import numpy as np a = [7, -7, 7, -7] b = [3, 3, -3, -3] print(np.mod(a, b)) print(np.remainder(a, b)) # [ 1 2 -2 -1] # [ 1 2 -2 -1]6.2 标准库Operator的mod()和操作符% python标准库operator模块的mod()和操作符%的作用一样,都是完成取模运算。 print(mod(7, -4)) # -1 print(7 % -4) # -1 print(mod(-7, 4)) # 1 print(-7 % 4) # 1 |
CopyRight 2018-2019 实验室设备网 版权所有 |