2010-06-30 2 views
1

저는 현재 FORTRAN 77에서 엉망이되고 있습니다. 알아낼 수없는 문제가 발생했습니다. 나는 아래와 비슷한 파일에서 읽으려고 해요 :FORTRAN 77의 파일에서 REAL을 읽음 - 이상한 결과

000120  Description(s) here  18  7  10.15 
000176  Description(s) here  65  20 56.95 
... 

각 행의 마지막 열은 금액 (결코 이상 100)입니다. 아래 코드와 비슷한 코드를 사용하여 파일을 읽으려고합니다.

마지막 열을 제외하고 모든 것이 잘 읽혀지는 것 같습니다. 예를 들어 두 번째 줄에 대해 가격의 가치를 확인할 때; 56.95를 얻는 대신 56.8999999999와 같은 것을 얻습니다.

이제 9 점이나 그 외의 것들이 완전히 정확하지는 않지만 9 센트에 조금 더 가까이 있지 않아야한다는 것을 알고 있습니다. 어쩌면 내가 잘못하고있는 것이 있을지 모르겠다. 다행히도 나는 이런 식으로 달리는 나의 프로그램에 매달리지 않을 것이다! 어떤 도움이라도 대단히 감사합니다!

답변

1

정확하게 파일을 읽는 데 사용하는 코드입니까? 열을 정렬하는 "X"형식이 있습니까? (I11, A25, 2X, I7, 3X, I6, 3X, F5)와 같이 (구성된 값으로). 정렬을 하나씩 해제하고 "56.9"를 "56.95"로 읽으면 부동 소수점 부정확도가 56.89999에 가까워 56.9에 가깝습니다.

줄을 읽고 문자열을 읽을 수도 있습니다 하위 문자열의 숫자 - 문자열의 위치 만 정확하게 지정하면됩니다. 하위 문자열에 공백과 숫자 만 포함되면 read (string (30:80), *) qty, min_qty, price와 같은 덜 까다로운 IO 입출력 읽기를 사용할 수 있습니다.

+0

당신은 그것이 정수를 읽지 못한다는 점에서 정확했습니다. 감사! –