在C ++的cmath库中,除了sqrt之外,还有其他用于获取平方根的函数。sqrt基本上用于双类型输入。其他用于浮点数,长型数据等。让我们看看这些函数的用法。
sqrt()
方法此功能用于双精度数据。因此,这将返回double类型的平方根。语法如下。
double sqrt(double argument)
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { double x = 144.0; double y = 180.0; cout << fixed << setprecision(12) << sqrt(x) << endl; cout << fixed << setprecision(12) << sqrt(y) << endl; }
输出结果
12.000000000000 13.416407864999
请注意,我们必须放入参数,否则它将返回错误。并且,如果参数为负,则它将返回NaN。
sqrtf()
方法此功能用于浮点型数据。因此,这将返回float类型的平方根。语法如下。
float sqrtf(float argument)
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { float x = 144.0; float y = 180.0; cout << fixed << setprecision(6) << sqrtf(x) << endl; cout << fixed << setprecision(6) << sqrtf(y) << endl; }
输出结果
12.000000 13.416408
请注意,我们必须放入参数,否则它将返回错误。并且,如果参数为负,则它将返回NaN。
sqrtl()
方法此功能用于长双精度型数据。因此,这将返回long double类型的平方根。这是精度更高的两倍。当我们使用1018阶整数时,此函数很有用。
long double sqrtl(long double argument)
#include <cmath> #include <iomanip> #include <iostream> using namespace std; main() { long long int x = 5000000000000000000; long long int y = 999999999999999999; cout << fixed << setprecision(12) << sqrtl(x) << endl; cout << fixed << setprecision(12) << sqrtl(y) << endl; }
输出结果
2236067977.499789696420 999999999.999999999476