내 코드에서 변수 정밀도에 문제가 있습니다 ... 잠시 동안 변수를 real(kind=8) :: var
으로 선언했는데 이제는 이식성이 좋지 않고 다른 몇 가지 합병증이 있음을 이해합니다. ,하지만 기본적으로 나는 수치 계산에서 많은 부정확성을 얻고있다. 나는 보통 var1 = 1.0D0
으로 변수를 초기화Fortran에서 지수 정의
INTEGER, PARAMETER :: R8 = SELECTED_REAL_KIND (30, 300)
with variable declaration: real(R8) :: var1,var2.
전에 지금은 var1 = 1.0_R8
을 사용하고 있지만 내가 var1 = 1.0D-20
을 어떻게해야 : 이제
내가 사용하고 있는데? 1.0D-20
이 정확한 결과를주지 못하지만, 10.0_r8**(-20.0_r8)
과 같은 것을 알 수있는 간단한 코드를 실행했습니다. 변수를 정의하는 더 쉬운 방법이 있습니까? 나는 1D-20
이 매우 작다는 것을 알고 있지만, 실제로 사용하고있는 코드는 십진수 30 자의 정밀도가 필요합니다.
도움 주셔서 감사합니다.
모두 사용해보십시오 : 아니 정말 중요한 것을 1.0E-20_r8 –
을 하지만 'r8'을 사용하면 아마 16이라는 값을 누군가에게 혼동을 줄 수 있습니다. – agentp
글쎄,'r8' 쿼드가 실제로 문제가 실제로 드러나는 유일한 이유입니다. – Ross