一些人回答了这个问题,这显然是不对的。
[En]
Some people answer that, which is obviously not right.
先看个例子:
‘//’明明是整除,为什么结果不是整数,而会出现小数?
首先,划分有三个概念:传统划分、精确划分和楼层划分。
[En]
First, there are three concepts of division: traditional division, exact division and floor division.
#1、传统除法:整数相除结果是整数,浮点数相除结果是浮点数
>>>4/2
2
>>>4.0/2
2.0
>>>4/2.0
2.0
#2、精确除法:无论操作数是整数还是浮点数,得到的商总是真实结果,总是得到浮点数
>>>4/2
2.0
>>>4.0/2
2.0
>>>4/2.0
2.0
#3、地板除:无论操作数是整数还是浮点数,得到的商不保留浮点数的尾数
>>>4//2
2
>>>4.0//2
2.0
但是!这三种除法概念在Python2.6和Python3.0中又有不同
Python2.6中,’/’按照以上三种除法概念把结果分得更细:比如,整数相除结果为整数,只要有一个浮点数结果就是浮点数(Python2.6:>>>3/2输出1);地板除’//’(和Python3.0一样):操作数为整数,整除结果为整数。否则操作数只要有一个浮点数,结果就为小数(这里小数和浮点数有区别,就是这个区别能解释开头引入例题)
Python3.0中,’/’保留小数,这把’/’的结果合并起来了,无论操作数是整数还是浮点数,结果总都是浮点数(Python3.0:>>>3/2输出1.5);地板除’//’(和Python2.6一样):同上
所以,现在,我们可以解释一下开始介绍的例子。
[En]
So, now, we can explain the examples introduced at the beginning.
第一个运算得到的结果是保留尾数数值的浮点数(当然也属于小数);而第二个运算,不保留尾数数值,直接截断仅保留其整数数值,但是因为有一个操作数是浮点数,所以得到的结果是小数,这个就是Python3.0对于’//’的运算规则
Original: https://www.cnblogs.com/cs-markdown10086/p/15579502.html
Author: NEU_ShuaiCheng
Title: python中整除后结果也是小数
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/510724/
转载文章受原作者版权保护。转载请注明原作者出处!