go语言中计算复数绝对值用cmplx.Abs函数,需导入”math/cmplx”包,函数签名func Abs(x complex128) float64,仅支持complex128类型,返回非负float64模长。

Go语言中计算复数的绝对值(模)用的是 cmplx.Abs 函数,它返回复数到原点的欧几里得距离,即 √(real² + imag²)。
导入 cmplx 包
使用前必须导入标准库中的 math/cmplx 包:
import “math/cmplx”
cmplx.Abs 基本用法
函数签名是:func Abs(x complex128) float64,只接受 complex128 类型,返回 float64 类型的模长。
- 如果传入
complex64,需先转成complex128,例如:cmplx.Abs(complex128(z64)) - 实部和虚部为整数或浮点数时,可直接用
complex(re, im)构造复数 - 支持负实部、负虚部,结果恒为非负浮点数
简单示例代码
以下代码演示常见用法:
立即学习“go语言免费学习笔记(深入)”;
z := complex(3, 4) // 3+4i
fmt.Println(cmplx.Abs(z)) // 输出:5
再比如:
z2 := complex(-5, 12) // -5+12i
fmt.Println(cmplx.Abs(z2)) // 输出:13
注意事项
不能直接对 complex64 调用 Abs,否则编译报错;不支持自定义精度类型,如需更高精度需自行实现(但标准库仅提供 complex128 版本);零复数返回 0.0,符合数学定义。
基本上就这些。