鱼C论坛

 找回密码
 立即注册
查看: 2888|回复: 7

[已解决]Python中小数减去整数得到的结果疑问

[复制链接]
发表于 2021-3-4 23:33:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在Python中,用一个小数减去一个整数,例如,3.14-3,为什么输出的结果是0.14000000000000012,有没有大神帮忙解答下,谢谢!
最佳答案
2021-3-5 00:08:37
本帖最后由 jackz007 于 2021-3-5 00:14 编辑

      整数在计算机中可以精确表达,而浮点数则不然,由于计算机 CPU 的数据总线宽度有限,CPU 字长所能表达的不同数值的个数是有限的,例如,64位 CPU 的字长为 64 位,总共可以表达 2 ^ 64 = 18446744073709551616 个不同的数值,而浮点数的个数是无限多的,所以,计算机对浮点数只能做到近似表达,这一点应该很容易理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-4 23:34:03 | 显示全部楼层
自己顶一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-4 23:51:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-5 00:08:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-3-5 00:14 编辑

      整数在计算机中可以精确表达,而浮点数则不然,由于计算机 CPU 的数据总线宽度有限,CPU 字长所能表达的不同数值的个数是有限的,例如,64位 CPU 的字长为 64 位,总共可以表达 2 ^ 64 = 18446744073709551616 个不同的数值,而浮点数的个数是无限多的,所以,计算机对浮点数只能做到近似表达,这一点应该很容易理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-5 09:07:29 | 显示全部楼层
jackz007 发表于 2021-3-5 00:08
整数在计算机中可以精确表达,而浮点数则不然,由于计算机 CPU 的数据总线宽度有限,CPU 字长所能表 ...

再请教下,如果要得到准确的结果,需要怎么操作?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-5 09:26:31 From FishC Mobile | 显示全部楼层
elecfan 发表于 2021-3-5 09:07
再请教下,如果要得到准确的结果,需要怎么操作?

输出时使用宽度(精度)限制
0.9是否等于1取决于精度需求
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-5 09:41:38 From FishC Mobile | 显示全部楼层
本帖最后由 jackz007 于 2021-3-5 10:29 编辑
elecfan 发表于 2021-3-5 09:07
再请教下,如果要得到准确的结果,需要怎么操作?


      我似乎听到这样一个问题,我有一辆 5 座轿车,请问,如何才能装下全世界的人,那么,请问楼主,你有好办法吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-6 11:21:45 From FishC Mobile | 显示全部楼层
elecfan 发表于 2021-3-5 09:07
再请教下,如果要得到准确的结果,需要怎么操作?

from decimal import Decimal
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 02:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表