使用Go语言进行复数计算优选complex128复数类型
如下文例子,如果使用 complex64 类型的话,就会由于精度不足而出错;改用 complex128 复数类型就可以了。
//jxs @ 2021.03.19 14:04:17
package main
import (
"fmt"
)
func main() {
//此时是有问题的,因为使用的是 complex64
var x, x_mul, y complex64
x = 1 + 15i
x_mul = x * x * x * x * x * x * x
y = x_mul + 1
fmt.Println(y == x_mul, y, x_mul)
//运行结果是:true (-7.7967224e+07-1.5503053e+08i) (-7.7967224e+07-1.5503053e+08i)
//此时是没有问题的,因为使用的是 complex128
var xx, xx_mul, yy complex128
xx = 1 + 15i
xx_mul = xx * xx * xx * xx * xx * xx * xx
yy = xx_mul + 1
fmt.Println(yy == xx_mul, yy, xx_mul)
//运行结果是:false (-7.7967223e+07-1.5503052e+08i) (-7.7967224e+07-1.5503052e+08i)
}