Python

Python2 中除法的问题

 >>> 3 / 6
0
>>> 3.0 / 6
0.5
>>> 3.0 / 6.0
0.5
>>> 5 / 2
2
>>> 6.0 / 3
2.0
>>> 10.0 / 3
3.3333333333333335
>>> 0.2 +0.9
1.1
>>> 0.2 +0.1
0.30000000000000004
因为计算机要将我们输入得十进制转换为二进制,浮点数转换二进制的时候,就会有问题 0.1 转为二进制位0.000110011 转换后不会再精确的等于十进制的0.1了,一般我们将结果进行四舍五入保留两位,进行计算。

Python2 中是除法 取整数部分 ,因而得到3/6 =0,5/2=2

可引用 from __future__  import division 模块解决

 >>> from __future__ import division
>>> 3 / 6
0.5
>>>

Python 中 余数

 余数的两种方式

  1、 %

  2、divmod()   ,得到商和余数

 >>> 6 % 5
1
>>> 6 % 4
2
>>> divmod(6,4)
(1, 2) 商和余数
>>> divmod(6,5)
(1, 1)

  

05-27 03:34