我有两个很短的问题:
1 - 我只是读到这DEXP()是古老的形式EXP().这是否意味着它不应再被使用了?我一直认为这DEXP()是双精度相当于EXP().
2 - 指数函数的范围是多少?它是编译器依赖的吗?
在此先感谢您的帮助!
最好,Remek
ami*_*tas 18
如前所述,最好使用泛型函数(如EXP()),而不是过时类型特定的等价项,例如DEXP().
在旧的(非常旧的)FORTRAN版本(FORTRAN 77之前)中,每种数据类型都需要不同的功能.因此,如果您希望指数函数需要:EXP()表示单精度数,DEXP()表示双精度数,或CEXP()表示复数.FORTAN现在具有函数重载功能,因此单个函数适用于任何标准类型.
原则上,指数的可能范围可以是处理器和编译器相关的.但是,如前所述,大多数现代处理器和编译器都将使用IEEE标准.
如果需要,可以在声明变量时指定变量的所需范围.要使用的功能是SELECTED_REAL_KIND([P,R]).
例如,假设您确保其x类型的小数精度至少为10位,小数指数范围至少为100.
INTEGER, PARAMETER :: mytype = SELECTED_REAL_KIND(10, 100)
REAL(KIND=mytype) :: x
Run Code Online (Sandbox Code Playgroud)
有关更多信息:SELECTED_REAL_KIND
实际上,如果您编写的程序需要一定的准确性,并且可以在异国情调或旧系统上运行,那么以这种方式定义类型是一个非常好的主意.这里显示了一些常见的定义:Real Precision
| 归档时间: |
|
| 查看次数: |
29987 次 |
| 最近记录: |