去浮动零除法编译器错误
go float zero division compiler error
这种行为有何意义?只打印编译器警告而不是错误不是更有意义吗?
func main() {
var y float64 = 0.0
var x float64 = 4.0 / y
fmt.Println(x)
}
+信息
func main() {
var x float64 = 4.0 / 0.0
fmt.Println(x)
}
prog.go:9:22:除以零
Golang 数字常量很特殊。它们没有直接映射到任何 IEEE754 浮点类型,并且它们不能存储无穷大或 -0 例如。
Numeric constants represent exact values of arbitrary precision and do not overflow. Consequently, there are no constants denoting the IEEE-754 negative zero, infinity, and not-a-number values.
这个选择带来了一些力量,因为它减少了常量溢出:
var x float64 = 1e1000 / 1e999 // yes, this is 10
如果您需要无穷大的值,您可以这样做
var x float64 = math.Inf(1)
这种行为有何意义?只打印编译器警告而不是错误不是更有意义吗?
func main() {
var y float64 = 0.0
var x float64 = 4.0 / y
fmt.Println(x)
}
+信息
func main() {
var x float64 = 4.0 / 0.0
fmt.Println(x)
}
prog.go:9:22:除以零
Golang 数字常量很特殊。它们没有直接映射到任何 IEEE754 浮点类型,并且它们不能存储无穷大或 -0 例如。
Numeric constants represent exact values of arbitrary precision and do not overflow. Consequently, there are no constants denoting the IEEE-754 negative zero, infinity, and not-a-number values.
这个选择带来了一些力量,因为它减少了常量溢出:
var x float64 = 1e1000 / 1e999 // yes, this is 10
如果您需要无穷大的值,您可以这样做
var x float64 = math.Inf(1)