0.1 + 0.2 == 0.3 ? Python 浮点数详解

💻前言

❤️‍🔥个人主页: 主页链接
✨个人简介:计算机大二在读,每天会在CSDN上发布有意思的文章,如果发现文章错误,可以私信或评论指正✏️,觉得写的不错的话,还请三连支持一下⭐👍🤗
🔥精选专栏:
30天搞定基础算法
编程小知识

请添加图片描述


💡Python 浮点数详解

🏀概念

— 带有小数点及小数的数字(与数学中实数的概念一致)
— 浮点数的取值范围和小数精度都存在限制,但常规计算可以忽略
— 取值范围数量级约为 -10307 至 10308 , 精度数量级 10-16

⚽计算

在这里插入图片描述

在这里插入图片描述
如图所示,0.1 + 0.3 计算得到 0.4 正确, 但是 0.1 + 0.2 计算却得到了一连串未知尾数,这并不是Bug所致,详见下图:
在这里插入图片描述

  • 所以产生不确定位数的原因是由于浮点数在计算机内存中的表示存在不确定尾数

⚾解决方法

当我们在利用浮点数运算判断时,可能会因为不确定尾数造成判断错误,如下图所示:
在这里插入图片描述
这时我们可以利用round函数对浮点数进行规范,结果就能够正确表示

🎱round函数

—round(x, d): 对 x 四舍五入, d 是小数截取位数
—浮点数间运算与比较用round()函数辅助可以避免错误
—不确定尾数一般发生在 10-16 左右 round() 十分有效

🏐科学计数法

使用字母e或E作为幂的符号,以 10 为基数 ,格式 a e b 表示 a*10b
例如: 4.3e-3 表示 0.0043 , 9.6e5 表示 960000.0


  • 以上就是Python中浮点数的相关知识,小伙伴们可以自己再编写一些代码这样就能熟练掌握😎
    请添加图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^流川枫^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值