首页 » InfoTech »

Python不精确的浮点数

2018年4月21日 / 32次阅读
Python

打开支付宝首页,搜索“529018372”,即可领取红包!可重复领。

特色图片

Python有一个浮点数类型(对象),float,我想是为了简化,Python没有像C语言那样,将浮点数细分为单精度float,双精度double,以及扩展双精度long double。(推荐学习:IEEE 754 浮点数标准

Python的float,按照官方的说法,是被映射到底层的double类型,即双精度。我们可以通过float对象的hex()函数来证明:

>>> float(0.2).hex()
'0x1.999999999999ap-3'
>>> float(5.2).hex()
'0x1.4cccccccccccdp+2'

这个复杂的16进制表示,对应的应该就底层的机器码。

 

跟C语言一样,Python中基本的浮点数运算也是无法精确的,比如:

>>>
>>> a=3.1
>>> b=3.2
>>> a+b
6.300000000000001
>>>
>>> a + b == 6.3
False #正常...
>>>
>>> a=2.4
>>> b=3.2
>>> a+b
5.6
>>> a+b == 5.6
True #惊喜...但是这样写比较是错误的...

始终要有意识,整数运算是精确的,浮点数运算是不精确的。当然,我们也有办法进行精确的浮点数运算,以后再总结。

本文链接:http://www.maixj.net/ict/python-float-17713
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选

云上小悟,麦新杰的独立博客

Ctrl+D 收藏本页

栏目

AD

ppdai

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。

网站二维码
go to top