std::hypot
来自cppreference.com
![]() |
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
定义于头文件 <cmath>
|
||
float hypot( float x, float y ); |
(1) | (C++11 起) |
double hypot( double x, double y ); |
(2) | (C++11 起) |
long double hypot( long double x, long double y ); |
(3) | (C++11 起) |
Promoted hypot( Arithmetic x, Arithmetic y ); |
(4) | (C++11 起) |
计算
4) x
和y
的平方的总和的平方根,没有不当的上溢或下溢,在中间阶段的计算。这是一个边长的直角三角形的斜边的长度x
y
,或距离的点(x,y)
从原点(0,0)
,或一个复数x+iy
的幅度原文:
Computes the square root of the sum of the squares of
x
and y
, without undue overflow or underflow at intermediate stages of the computation. This is the length of the hypotenuse of a right-angled triangle with sides of length x
and y
, or the distance of the point (x,y)
from the origin (0,0)
, or the magnitude of a complex number x+iy
如果任何参数是整数类型,它被转换为double。如果有另一种说法是long double,则返回类型是long double,否则它是double.
目录 |
[编辑] 参数
x | - | |
y | - |
[编辑] 返回值
一个直角三角形的斜边,√x2
+y2
.
+y2
.
[编辑] 例外
如果结果溢出,范围可能发生错误,FE_OVERFLOW可能会引发.
如果结果是次正规,下溢错误,可能会发生与FE_UNDERFLOW可能提出.
[编辑] 注释
[编辑] 示例
运行此代码
#include <cmath> #include <utility> #include <iostream> std::pair<double, double> cartesian_to_polar(double x, double y) { return {std::hypot(x, y), std::atan2(y,x)}; } int main() { std::pair<double, double> polar = cartesian_to_polar(1, 1); std::cout << "(1,1) cartesian is (" << polar.first << "," << polar.second<< ") polar\n"; }
输出:
(1,1) cartesian is (1.41421,0.785398) polar
[编辑] 另请参阅
(函数) | |
(函数) | |
(函数模板) |