鱼C论坛

 找回密码
 立即注册
查看: 1201|回复: 5

python中很大的数值计算求余不正确,麻烦各位帮忙看看

[复制链接]
发表于 2018-11-15 18:09:18 | 显示全部楼层 |阅读模式

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

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

x
今天在解每日1题9(分解质因素)。看到一个解题的答案很简洁,于是用来和自己写的来比比看看,效率如何
发现大数据的时候结果不一致18位数字;最后找了下问题发现 “ % ”  是取余计算结果不正确,
123456789101112131
计算一下会发现用 取余的时候等0应该能够整除,但实际用除法除不掉。是因为取余精度还是什么问题
123456789101112131 % 7 =0        
123456789101112131 / 7  =1.7636684157301732e+16
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-15 18:27:28 | 显示全部楼层
浮点数精度问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 19:09:46 | 显示全部楼层
是你的数值太大了,python自动用e记法,转换后就是17636684157301732.0(因为是除法)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-11-16 08:54:47 | 显示全部楼层
TCY 发表于 2018-11-15 19:09
是你的数值太大了,python自动用e记法,转换后就是17636684157301732.0(因为是除法)

还是有问题我用笔算了下,发现能够除尽是除法的问题,最后1位应该是3的,而除的结果是2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 09:17:31 | 显示全部楼层
过来顶一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-16 11:59:17 | 显示全部楼层
嗯,我用python算了,我想应该是存储误差吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-29 08:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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