• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python3 实现除法结果为整数

python 搞代码 4年前 (2022-01-08) 13次浏览 已收录 0个评论
文章目录[隐藏]

这篇文章主要介绍了python3 实现除法结果为整数,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

问题描述

101/100,想要的结果是1,但是算出来的结果是1.01

解决方案

101 // 100

结果图

补充:python2 与 3:一般除法、除法取整、除法取余、精确减法与精确除法

python2

python2除法

python2的除法,与c语言除法类似,两个整数相除结果一定是整数,除数与被除数有一个是浮点数,结果就是浮点数。因此当两个整数相除,结果又有小数时,由于结果是整数,所以小数部分会被省略,针对这种情况,要实现真正的除法,除数与被除数至少有一个应改为浮点数。(貌似python2.7开始,除法和python3除法一样了,没有仔细考究)

 a = 3 b = 2 print a/b print float(a)/b print a/float(b) print float(a)/float(b) # 结果 1 1.5 1.5 1.5 

python2除法取整

加一个int(),进行强制类型转换即可。

 a = 4.5 b = 3 print a/b print int(a/b) # 结果 1.5 1 

python2除法取余

利用%操作即可。

 a = 5.5 b = 3 print a % b # 结果 2.5 

python3

python3除法

python3的除法就直接使用”/”,就可以了,不存在python2的情况

 a = 3 b = 2 print(a/b) # 结果 1.5 

python3除法取整

 利用"//"操作 a = 5.5 b = 2 print(a//b) # 结果 2.0 

python3除法取余

利用”%”操作

 a = 5.5 b = 2 print(a%b) # 结果 1.5 

python3精确减法与精确除法

我们先看看下面的输出

 a = 0.9 b = 1 print(b-a) print((b-a)/100) print((0.1)/100) # 结果 0.09999999999999998 0.0009999999999999998 0.001 

python计算要把数字先转为二进制,因为浮点数以二进制形式表示时的有穷性(利用乘K取余法,0.9的二进制无限延展),会导致计算误差。下面摘自python文档原话。

On most machines today, floats are approximated using a binary fraction with the numerator using the first 53 bits starting with the most significant bit and with the denominator as a power of two.

这不是只有python才有的bug,也不是你代码的bug,所有的编程语言都会有这个问题,当然可能很多编程语言会使用某些机制来规避这种显示。回到该blog的例来源[email protected]搞@^&代*@码网子,0.9的二进制表示如下:

0.1110011001100110011001100110011001100110011001100110011

1-0.9的二进制表示为:

0.0001100110011001100110011001100110011001100110011001100

转化过来就是0.09999999999999998

这时候为了实现精确运算,可以使用类decimal。

 import decimal decimal.getcontext().prec = 10 # 取小数点后精度到第10位 a = 0.9 b = 1 print(decimal.Decimal(b)-decimal.Decimal(a)) print((decimal.Decimal(b)-decimal.Decimal(a))/100) print((0.1)/100) # 结果 0.1000000000 0.0010000000 0.001 

当然,直接使用近似函数round()也是可以的。

 a = 0.9 b = 1 print(round(b-a, 10)) print(round((b-a)/100, 10)) print(round((0.1)/100, 10)) # 结果 0.1 0.001 0.001 

以上就是python3 实现除法结果为整数的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python3 实现除法结果为整数

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址