转自:https://www.cnblogs.com/junyiningyuan/p/5338378.html
关于除法
- 传统除法
对两个整数进行除的运算,同时结果会舍去小数部分,返回一个整数。但如果操作数之一是浮点型,则执行真正的除法。
- 真正的除法
返回真实的商,不管操作数的类似是整数还是浮点数
需要执行如下指令将传统除法转换为真正的除法
1 | from __future__ import division |
- 地板除
不管操作数为何种数值类型,总是舍去小数部分,返回数字序列中比真正的商小的最接近的数字,操作符“//”
举例:
1 2 3 4 5 6 7 | >>> print "5/3传统除法:" , 5 / 3 5 / 3 传统除法: 1 >>> from __future__ import division >>> print "5/3真正的除法:" , 5 / 3 5 / 3 真正的除法: 1.66666666667 >>> print "5/3地板除:" , 5.0 / / 3 5 / 3 地板除: 1.0 |
关于取整
常用的直接就是int(),但会发现是直接把小数部分去掉了的整数,有的时候不是我们要的,学习了下int,floor,round的区别
- int() 直接截去小数部分(返回值为整型)
- floor()得到的是最接近原数但小于原数的整型(返回值为浮点型)
- round()得到最接近原数的整型(返回值为浮点型)
举例:
1 2 3 4 5 6 7 | >>> import math >>> int ( 3.67 ) 3 >>> math.floor( 3.67 ) 3.0 >>> round ( 3.67 ) 4.0 |
如上只是针对python2.X版本的情况,python3.X版本已经有了变化。
如下为python3.3版本的对应变化
关于除法
- 传统除法
python3.3版本中的传统除法就是真正的除法,不管除数和被除数是否为整数,结果都是真实的商。
- 地板除
python3.3版本中保留了地板除。
举例:
1 2 3 4 | >>> print ( "传统除法:" , 1 / 2 ) 传统除法: 0.5 >>> print ( "地板除:" , 1 / / 2 ) 地板除: 0 |
关于取整
python3.3中的int()和floor()、round()的运算方式没变动,只是最终的返回结果都是整型
举例:
1 2 3 4 5 6 7 8 9 10 11 | >>> int ( 1.9 ) 1 >>> import math >>> math.floor( 1.2 ) 1 >>> type (math.floor( 1.2 )) < class 'int' > >>> round ( 1.6 ) 2 >>> type ( round ( 1.6 )) < class 'int' > |