主题:fortran传递double型的一个bug
有以下代码:
program main
call print_value(0.1)
end program main
subroutine print_value(a)
double precision::a
print *, a
end subroutine print_value
执行结果
5.12263046511523399E-315
,可见0.1这个数并没有传递到子程序去。
而如果把 double precision::a 改成 real::a 就可以打印处0.1
或者在主程序中声明double precision::a=0.1 然后把a 传递过去即可
哪位高手解释一下,算不算个bug?
program main
call print_value(0.1)
end program main
subroutine print_value(a)
double precision::a
print *, a
end subroutine print_value
执行结果
5.12263046511523399E-315
,可见0.1这个数并没有传递到子程序去。
而如果把 double precision::a 改成 real::a 就可以打印处0.1
或者在主程序中声明double precision::a=0.1 然后把a 传递过去即可
哪位高手解释一下,算不算个bug?