当我开始为我的计算编写测试时,我注意到了以下问题:
>>> np.multiply(0.55, 20)
11.0
>>> np.multiply(np.float(0.55), 20)
11.0
>>> np.multiply(np.float128(0.55), 20)
11.000000000000000888
>>> np.ceil(np.multiply(0.55, 20))
11.0
>>> np.ceil(np.multiply(np.float128(0.55), 20))
12.0如示例中所示,使用np.float128类将导致计算的不同解决方案。我一直在结合使用numpy函数(例如np.multiply)和np.float128类,因为我认为这会给我更精确的计算结果。
所以我的问题是:,在python中处理相当复杂的计算的最好方法是什么?
如果我得到了正确的结果,我就不会有很高的精度。
发布于 2022-09-07 19:35:31
正如您的示例所示,与np.float128相比,np.float确实具有更高的精度。在这里你必须考虑执行的顺序!
重要的问题是,对于您的应用程序(结果)来说,什么级别的精度足够好?当你弄明白了这个问题,你就可以确定每个浮点变量的精度水平,以达到这个目标。
https://stackoverflow.com/questions/73640424
复制相似问题