int()
함수를 사용할 때 문제가 발생했습니다. 나는 실제 배열 mEL
을 가지고 있으며, 실제 배열 COORDS
과 비교하기 위해 일부 구성 요소를 정수로 변환하려고합니다. 나는 때문에 COORDS
배열의 오류를 반올림 int()
를 사용하는, 그래서 ZERO
아주없는 제로 3.D-77
또는 유사합니다Fortran 77의 int() 함수
DO I = 1,nLines
IF (int(mEL(I,1)).EQ.int(COORDS(1,1)) .AND.
1 int(mEL(I,2)).EQ.int(COORDS(2,1)) .AND.
2 int(mEL(I,3)).EQ.int(COORDS(3,1))) THEN
.....do something
문제는 실행 중에 int(COORDS(1,1))
변화의 결과 만 COORDS(1,1)
의 값이 상태인지 같은. 예 :
COORDS(1,1) = 1829.0000000
1000 회 실행 중일 때 나는 int(COORDS(1,1))=1829
이됩니다. 그러나, 일부 실행 후 나는 얻는다 : int(COORDS(1,1))=1828
! 하지만 COORDS(1,1)=1829
!
왜 그런가?
두 값 사이에 큰 차이가 있습니까? –
아니요, 싫습니다. 그것이 내가 그것을 피하고자하는 이유입니다. 문제는 int (COORDS (1,1))가 때때로 1828과 같지만 COORDS (1,1)이 1829.0000이므로 int (COORDS (1,1))가 1829가 될 것이라고 기대했습니다. – jpcgandre
Well 'int'는 자르므로'coords (1,1)'이 (대략)'1828.9999999999'와 같으면 (특정 포맷 옵션에서)'1829.0000000' 또는'1829'로 표시되지만 잘라 버릴 수 있습니다 올바르게)를 '1828'로 바꾼다. 당신이 우리에게 말한 것은 그 가능성을 배제하지 않습니다. 실행 중에'coords (1,1) '이 업데이트됩니까? –