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()函数。