Fortran DMOD与Python numpy.rements

2024-10-01 05:02:43 发布

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

为什么我使用Fortran中的“DMOD”和Python中的“numpy.rements”得到不同的结果

用Fortran语言:

DOUBLE PRECISION aaa,bbb
aaa = 2.11561
bbb = 1.19841
out = DMOD(aaa, bbb)
print*,out

我得到:0.917199850

在python中:

import numpy as np
print(np.remainder(2.11561,1.19841))

我得到:0.9172000000000002


Tags: importnumpy语言asnpoutprecisiondouble
1条回答
网友
1楼 · 发布于 2024-10-01 05:02:43

如果您想在Fortran中获得双精度,那么也需要以这种方式编写常量。您可以通过使用_dp后缀这样做:

integer, parameter:: dp=kind(0.d0)
aaa = 2.11561_dp

或者您可以在数字中使用d

aaa = 2.11561d0

使用e表示单精度,d表示双精度。默认为单精度。。。即使变量是双精度的,常数也可能是单精度的!在C中也是这样

不同之处在于Python和C默认使用双精度,而您必须要求单精度

相关问题 更多 >