小编A. *_*mov的帖子

sqrt(x)和x**(1./2.)之间的比较

我刚才有一个简短的问题,这个问题是我在尝试获取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
推荐指数
1
解决办法
142
查看次数

标签 统计

fortran ×1