运算符除法 “/” 和 "//"的区别

在C/C++语言对于整形数执行除法会进行地板除(舍去小数部分)。例如 int a=15/10; a的结果为1。

同样的在Java中也是如此,所以两个int型的数据相除需要返回一个浮点型数据的时候就需要强制类型转换,例如 float a = (float)b/c ,其中b、c都是int型数据。

Python中分为3种除法:传统除法、精确除法、地板除。


传统除法

如果是整数除法则执行地板除,如果是浮点数除法则执行精确除法。 

[python]  view plain  copy
  1. >>>1/2  
  2. 0  
  3. >>>1.0/2.0  
  4. 0.5  
  5. >>>5/2
  6. 2
  7. >>>5/-2
  8. -3

精确除法

除法总是会返回真实的商,不管操作数是整形还是浮点型。执行from __future__ import division 指令就可以做到这一点。 

[python]  view plain  copy
  1. >>>from __future__ import division  
  2. >>>1/2  
  3. 0.5  
  4. >>>1.0/2.0  
  5. 0.5 

地板除

从Python2.2开始,增加了一个操作符 // ,以执行地板除://除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。 

[python]  view plain  copy
  1. >>>1//2  
  2. 0  
  3. >>>1.0//2  
  4. 0  
  5. >>>-1//2.0  
  6. -1  
  7. >>>3.0//2
  8. 1.0
  9. >>>10//8
  10. 1

内建函数divmod()

divmod (a,b),返回(a//b,a%b)

[python]  view plain  copy
  1. >>>divmod(1,2)  
  2. (0,1)  
  3. >>>divmod(3.14159,1.5)  
  4. (2.0,0.4159000000000002)  
  5. >>>5+6j//3+2j  
  6. 2+0j  
  7. >>>5+6j%3+2j  
  8. -1+2j  
  9. >>>divmod(5+6j,3+2j)  
  10. ((2+0j),(-1+2j))  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值