Golang数据类型–浮点型

Go中的浮点类型有两种float32和float64。

区别就是精度不一样,float64精度更高,也就是表示的范围更广。

同int类型一样,定义整型变量时,如果不指定类型,默认类型为int,浮点型也具备这样的特性,声明浮点型时,如果不指定类型,默认推断为float64。

package main

import "fmt"

func main() {
	var fvar = 1.1
	fmt.Println("float:",fvar)
	i := interface{}(fvar).(float64)
	fmt.Println(i)
}

输出结果:

float: 1.1
1.1

通过类型断言,我们验证了上面默认声明类型的说法。

注意点浮点数的比较

因为计算机实际上不能精确的表示浮点数,你表面上看,给var fvar = 1.1赋值了一个1.1的值,但是在计算中实际表示的可能是1.1000329,所以浮点是比较,需要用math.Fdim()函数。