Python3里 print(1.2-1.0==0.2)输出为 False

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

有朋友问我,为何 print(1.2 -1.0 ==0.2)输出为 False,今天来一探究竟~

自己先来验证下:

>>>print(1.2-1.0==0.2)
False                   #还真滴是False

这是为啥呢???先来看看它的类型是啥

>>> type(1.2-1.0)
<class 'float'>      #呦呵是浮点型的

继续向下验证,我们直接进行减

>>> 1.2-1.0
0.19999999999999996

阔以看到,结果并不是我们所认知的0.2,而是0.1好多,近似等于0.2。

到这基本上就知道为何是False了,原因如下:

1、1.2-1.0在Python中的运算结果是浮点数,其结果数值是个近似值。

2、"=="是进行比较两个对象的内容是不是一样,内存地址可以不一样,内容一样就行了。

3、还有个原因那就是运算的优先级,左边是浮点数,是不可能相等的。

4、最后就是计算机底层的进制问题了。

所以呢,需要进行精确计算的时候就要注意这个问题啦~

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值