Float64 在 go 中键入常量,失去精度
Float64 typed constant in go, loses precision
考虑以下用 go 编写的代码:
package main
import "fmt"
func main() {
const pi float64 = 22 / 7
fmt.Println("pi value", pi)
}
此处pi
的值为3
。问题是为什么值会丢失精度,即使它是 float64
?
类型
没关系,我得到了答案。
package main
import "fmt"
func main() {
const pi float64 = 22.0 / 7.0
fmt.Println("pi value", pi)
}
输出3.142857142857143
。似乎类型取决于整数类型是否被划分,无论接收变量是否为 float64 类型,它都会 return 一个整数。所以得到一个浮点值,浮点值之间是否存在差异。
考虑以下用 go 编写的代码:
package main
import "fmt"
func main() {
const pi float64 = 22 / 7
fmt.Println("pi value", pi)
}
此处pi
的值为3
。问题是为什么值会丢失精度,即使它是 float64
?
没关系,我得到了答案。
package main
import "fmt"
func main() {
const pi float64 = 22.0 / 7.0
fmt.Println("pi value", pi)
}
输出3.142857142857143
。似乎类型取决于整数类型是否被划分,无论接收变量是否为 float64 类型,它都会 return 一个整数。所以得到一个浮点值,浮点值之间是否存在差异。