liujian973 发表于 2018-11-15 18:09:18

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

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

塔利班 发表于 2018-11-15 18:27:28

浮点数精度问题

TCY 发表于 2018-11-15 19:09:46

是你的数值太大了,python自动用e记法,转换后就是17636684157301732.0(因为是除法)

liujian973 发表于 2018-11-16 08:54:47

TCY 发表于 2018-11-15 19:09
是你的数值太大了,python自动用e记法,转换后就是17636684157301732.0(因为是除法)

还是有问题我用笔算了下,发现能够除尽是除法的问题,最后1位应该是3的,而除的结果是2

考拉熊 发表于 2018-11-16 09:17:31

过来顶一下

TCY 发表于 2018-11-16 11:59:17

嗯,我用python算了,我想应该是存储误差吧
页: [1]
查看完整版本: python中很大的数值计算求余不正确,麻烦各位帮忙看看