鱼C论坛

 找回密码
 立即注册
查看: 6229|回复: 6

[已解决]一个关于地板除法和真除法的问题

[复制链接]
发表于 2016-12-13 18:56:49 | 显示全部楼层 |阅读模式

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

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

x
最后为什么结果返回了False呢,a和b的数值为什么会在第18位之后就不一样了
最佳答案
2016-12-14 10:15:19
显然a是浮点数,因为超过17位了使用乘方的表达方式,这样a的结果就本来是存在偏差的,又因为a的小数部分为0,而c=int(a)所以a自然等于c,但是b是整除发,是X/2的真实的值,所以a自然不等于b
深度学习.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-12-13 20:33:29 | 显示全部楼层
因为a是一个浮点数,浮点数最多只能显示17位,如果超过17位,就会用一个浮点数x乘以e的n次方来表示,而x也只能显示17位,后面的就会被省略掉 比如 123这个数,如果只能显示2位,那就会变成1.2*10**2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-14 08:55:34 | 显示全部楼层
jina110 发表于 2016-12-13 20:33
因为a是一个浮点数,浮点数最多只能显示17位,如果超过17位,就会用一个浮点数x乘以e的n次方来表示,而x也 ...

我觉得应该不是这个原因吧,虽然a为浮点型,后面的位数被省略了,但是我们可以看出a == c还是返回了True,也就是说虽然后面的位数不显示,实际上还是相等的,但是b和c在17位以后的数字就不一样了,这个才是关键
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-14 10:15:19 | 显示全部楼层    本楼为最佳答案   
显然a是浮点数,因为超过17位了使用乘方的表达方式,这样a的结果就本来是存在偏差的,又因为a的小数部分为0,而c=int(a)所以a自然等于c,但是b是整除发,是X/2的真实的值,所以a自然不等于b

评分

参与人数 1鱼币 +2 收起 理由
榨汁姬 + 2 感谢层主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-14 16:04:15 | 显示全部楼层
66666
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-15 14:43:15 | 显示全部楼层
本帖最后由 榨汁姬 于 2016-12-15 14:51 编辑
小茗同学 发表于 2016-12-14 10:15
显然a是浮点数,因为超过17位了使用乘方的表达方式,这样a的结果就本来是存在偏差的,又因为a的小数部分为0 ...


哦哦,懂你的意思了!!!但是能不能详细解释下,a的结果出现偏差的原因呢,还是不明白为什么17位之后就会出现偏差!而且a的真实值和显示出来的值不一样,显示出来的值后面几位是没有的,而c的最后几位都不为0,那么a的真实值到底是怎么计算出来的呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-16 20:55:30 | 显示全部楼层
学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-24 11:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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