美文网首页
python中的float除法和整除法

python中的float除法和整除法

作者: Kair | 来源:发表于2014-12-03 15:08 被阅读14536次

从python2.2开始,便有两种除法运算符:"/"、"//"。两者最大区别在:

  1. python2.2前的版本和python2.2以后3.0以前的版本的默认情况下,"/"所做的除法是以一种两个数或者多个数出现一个浮点数结果就以浮点数的形式表示,即float除法
  2. "//"所做的除法则不相同,"//"不管两者出现任何数,都以整除结果为准,不对小数部分进行处理,直接抛弃,也就是整除法

以下是笔者在编译器测试的数据,测试的版本是python2.7

关于"/":

>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335

由以上的例子我们可得出,只要除数中有一个数是浮点数,那么得到的结果也是浮点数

以下是关于"//":

>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0

由以上的例子,我们可以看出,两个整型相除,得到的还是整型,但是。如果一个浮点数除以一个非浮点数得到的还会是一个浮点数,但是,计算的结果却是忽略小数部分,运算的结果类似两个整型相除,但是得到一个浮点数。另外"//"对于两个浮点数也是不例外的。

如何让"/"和"//"进行分工

在默认情况下,这两种运算符有很大的重叠地方,比如,当两个数都是整数的时候,两者的运算结果是没有区别的。如果想在python中让这两种有一个明确的分工。即"/"可以用于float除法,"//"用于整除法,我们可以在程序开始的时候做以下声明:

from __future__ import division

声明后测试的结果(以下测试的版本是python2.7)

>>> from __future__ import division
>>> 3/2
1.5
>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3.0/2.0
1.5
>>> 3//2
1
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0
>>> 3//2.0
1.0
>>> -11/2
-5.5

以上,我们可以知道,做这个声明以后,"/"进行的将是float除法而不是整除法。

还需要注意的是,在pyhton3中,"/"表示的就是float除,不需要再引入模块,就算分子分母都是int,返回的也将是浮点数

相关文章

  • python中的float除法和整除法

    从python2.2开始,便有两种除法运算符:"/"、"//"。两者最大区别在: python2.2前的版本和py...

  • Python的小细节

    python中 //(除法) 的取整规则是:向下取整! 所以,以上代码的输出结果是 如果想让除法向零取整,可以写成...

  • Python学习笔记(二)几种除法的比较

    传统除法(' /')、真除法、floor除法(' // ') ·传统除法和真除法:在Python2.7之前,对整数...

  • c语言和python运算符的差别

    算数运算符: C 语言: 没有除法,只有取整“/”,和取模“%”,例如, 5/2 结果为 2 python: 除法...

  • Python3学习 - 第三节

    Python中的运算符“/”和“//”的区别? 在Python 2.x中,“/”为普通除法,当两个数值对象进行除法...

  • 今天一些问题

    1. python 除法 Python 3.x在整数除法中,除法(/)总是返回一个浮点数,如果只想得到整数的结果,...

  • 2018-10-08 python小总结

    python的缩进格式很重要,后面要跟空格定义常量 只要将名字全部大写即可/ 除法保留以为小数 //除法,取整获取...

  • python 2.7 和 python 3.6 区别(持续更新)

    版本 Python 2.7.14 和 Python 3.6.4 关于除法

  • Python里的除法

    python里有三种除法: 传统除法如果是整数除法,执行地板除。如果是浮点数除法,则执行精确除法。 地板除用 //...

  • python中的截断除法和floor除法

    floor除法:平时用的 // 就是floor除法,5//2 = 2 ,5//-2=-3,同时math包中的还有f...

网友评论

      本文标题:python中的float除法和整除法

      本文链接:https://www.haomeiwen.com/subject/mavgtttx.html