为什么python3.4对大数除法给出了错误的答案,如何测试除数的可除性?

2024-10-01 17:38:30 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的程序中,我使用除法来测试结果是否为整数,我测试的是整除性。但是,我得到了错误的答案。下面是一个例子:

print(int(724815896270884803/61))

给出11882227807719424。在

^{pr2}$

给出了11882227807719423的正确结果。在

为什么浮点结果是错误的,我如何测试大数是否可以被61整除?我真的需要做整数除法,然后再乘以它,看看它是否相等?在


Tags: 答案程序错误整数例子int浮点print
2条回答

您应该计算模数(%),而不是除以:

print(724815896270884803 % 61)

这类似于做整数除法并返回余数(回想一下小学的长除法)。0的余数表示它是可除的。在

浮点结果是错误的,因为用/除两个整数会产生一个浮点,并且除法的确切结果不能精确表示为float。精确结果11882227807719423必须四舍五入到最接近的可表示数字:

In [1]: float(11882227807719423)
Out[1]: 1.1882227807719424e+16

相关问题 更多 >

    热门问题