나는 포트란에 대해 의심이있다. 다음 코드에서 :이중 포트란 정수
program p
integer num
real*8 d
num=111
d=dble(num/4)
print*, d
end program p
나는 27.000000000000000이됩니다. 그것은 num이 정수이고 num/4가 같은 유형이어야하기 때문입니까? Matlab에서 번역해야하는 다른 코드의 일부입니다.이 경우에는 num/4로자를 수 있습니까?
floor(num/4)
따라서
num\4
는 정수,
참고 * 실제 * 8을 사용하지 마십시오. 실제 * 8을 사용하지 마십시오. 실제로는 생각했던대로 작동하지 않을 수 있습니다. 'real (kind = rk)'표기법을 사용하고'selected_real_kind'로 종류 rk를 선택하십시오. 문제는, 당신이 부서 주변을 돌고 있다는 것입니다. 즉, 먼저 나누기가 수행되고 (두 인수가 정수이므로 정수 나누기) 결과를 실제로 캐스트합니다. 대신에 예를 들어'd = real (num, kind = rk)/4'를 할 수 있습니다. 더 나은, 아마도 이런 식으로 뭔가 :'d = 0.25_rk * num'. – haraldkl