2010-02-23 4 views

답변

3

The D means "× 10???" 또는 e (일반적으로 1.e+300)에서 C#으로 표시되지만 이중 정밀도를 나타냅니다.

DOUBLE PRECISION statement은 단지 double 인 3 개의 변수를 정의합니다.

DATA statement

DATA X/Y/ 

는 C#으로

X = Y; 

로 변환한다. 따라서 당신은 INF 이후

double INF = 1.e+300, DMIN, D12; 

내가 그 경우는 real IEEE infinity (double INF = double.PositiveInfinity, ...)를 사용하는 것이 좋습니다, 그것은 "무한"을 의미 믿고 너무 커서 얻을.

2

코드에서 값이 10^300 인 INF (즉, 무한대)이라는 상수가 선언되었습니다. double.PositiveInfinity 또는 double.MaxValue을 대체하고 싶을 것입니다.

1

값은 1.0e300이지만, 의도 한 바는 현재 CPU에서 표현할 수있는 가장 큰 double 값으로 설정된다는 것입니다. C#에서는 하드 코딩 된 값이 아닌 double.PositiveInfinity이됩니다.

2

코드는 Fortran 90/95/2003보다는 FORTRAN IV 또는 FORTRAN 77 스타일입니다.

Double Precision은 변수가 일반 실수의 두 배가되도록 선언합니다. 나는 그 시대의 포트란 표준이 숫자 적 하드웨어의 다양성이 많았던 이래로 그 의미에 대해 매우 정확했는지 확신 할 수 없다. 오늘날, 그것은 사실상 항상 8 바이트 실수를 얻을 것입니다. Data 문은 INF 변수를 초기화합니다. E 대신 "1.D + 300"상수에서 "D"를 사용하는 것은 이전 FORTRAN이 상수가 배정 밀도임을 지정하는 것입니다. 최대 포지티브 두를 얻는

포트란 (> = 90)의 방법은 :

INF = 거 (1.0D + 0)

관련 문제