浮点数用于表示包含小数点的数据。Go语言提供了两种精度的浮点数,float32和float64。float32与float64之间需要强制转换。强制转换的方式T(V),T为要转换的目标类型,V需要转换的变量。
1 浮点数表示
var f1 float32
f1 = 10
f2 := 12.0 //带小数点的自动推导为float64
f2 = float64(f1) //需强制转换
2 浮点数比较
因为浮点数不是一种精确的表达方式,所以不能像整型那样直接用==比较。推荐的方式如下,引入math包,计算两个数值之差的绝对值,如果这个结果非常小,我们就认为这两个数值是相等的。至于这个数小到什么程度定义为相等,程序员可以根据项目需求自己定义。
import "math"
func IsEqual(f1, f2, p float64) bool {
return math.Abs(f1-f2) < p
}
3 科学计数法
把一个数表示成a(1≤a<10,n为整数)与10的幂相乘的形式,这种记数法叫做科学记数法。例如:1990=1.99×10^3。计算器或电脑表达10的幂是一般是用E或e,也就是1.99E3=1990。
f1 := 1.99e+3 //1990
f2 := 1.99e-3 //0.00199
2.3.3 复数