回 帖 发 新 帖 刷新版面

主题:FORTRAN 中数学函数的精度问题

FORTRAN 中数学函数的精度问题
  由于计算需要,我把程序中的所有量都定义成双精度的,,突然想起 彭 的教程后面的附录里有关于数学函数的说明,如:
SIN(R)  
R=REAL
return=REAL
这样的话在程序里 我用了SIN(R1/R2) R1为单精度的(CALL RANDOM()得到的随机数),R2为双精度的  这样对运算有影响吗?
  如有该如何改进呢

回复列表 (共5个回复)

沙发

r1/r2 最终以r2双精度计算. sin(x)内部函数返回值根据你提供的x精度进入相应精度的计算.

板凳


您的意思是说没影响了?
还有一个问题:我知道用REAL()可以把双精度转换成单精度,那把单精度转换成双精度该怎么写呢?

3 楼

大哥, 你乱码了, 可不可以换个输入法呢? 或者打英文也可以啊.

4 楼

[quote]
您的意思是说没影响了?
还有一个问题:我知道用REAL()可以把双精度转换成单精度,那把单精度转换成双精度该怎么写呢?[/quote]
我给翻译下
您的意思是说没影响了?
还有一个问题:我知道用REAL()可以把双精度转换成单精度,那把单精度转换成双精度该怎么写呢?

5 楼

您对 Real 函数所知不全,其还有一个可省略的变量 kind。

REAL Function

Elemental Intrinsic Function (Generic): Converts a value to real type.

Syntax
result = REAL (a[,kind])

a
 (Input) Must be of type integer, real, or complex. 
 
kind
 (Input; optional) Must be a scalar integer initialization expression.
 

Results
The result type is real. If kind is present, the kind parameter is that specified by kind; otherwise, the kind parameter of the result is shown in the following table. If the processor cannot represent the result value in the kind of the result, the result is undefined.

Functions that cause conversion of one data type to another type have the same affect as the implied conversion in assignment statements.

If a is integer or real, the result is equal to an approximation of a. If a is complex, the result is equal to an approximation of the real part of a.

我来回复

您尚未登录,请登录后再回复。点此登录或注册