是否有任何简单的方法可以将任意浮点字符串转换为 fortran 中的实数?想到类似的东西strtod
?语句的问题READ
是所有浮点格式编辑描述符都需要明确的宽度。到目前为止,我做的最好的解决方法是:
pure function strtod(s)
real(kind=8) :: strtod
character(len=*), intent(in) :: s
character(len=32) :: fmt
integer :: dot
dot = index(s, ".")
if(dot < 1) then
write(fmt, '("(F",I0,".0)")'), len_trim(s)
else
write(fmt, '("(F",I0,".",I0,")")'), len_trim(s), len_trim(s)-dot
end if
read(s,fmt), strtod
end function strtod
但我想知道我是否遗漏了什么,可能有更好的方法吗?