我刚才有一个简短的问题,这个问题是我在尝试获取Fortran中数字的平方根时所做的观察.比较以下两个陈述
wp = selected_real_kind(15, 307)
somevar = sqrt(3.0)
somevar2 = (3.0_wp)**(1.0/2.0)
Run Code Online (Sandbox Code Playgroud)
我发现somevar = 1.7320507764816284和somevar2 = 1.7320508075688772.根据https://apod.nasa.gov/htmltest/gifcity/sqrt3.1mil,似乎somevar2是更正确的答案.我的问题是如果声明
squareroot = real(x,wp) ** (1.0/2.0)
Run Code Online (Sandbox Code Playgroud)
将始终为数字的平方根得到更正确的值?
如果是这样,这与sqrt()函数默认返回单个精度变量的事实有关,或者这与使用的编译器有关?
fortran ×1