package main
import (
"fmt"
)
func main() {
fmt.Println(float64(1/2))
}
为什么打印:0
游乐场链接:https://play.golang.org/p/KGgao6n8lTA
是因为fmt.Println
的精度低吗?
答案 0 :(得分:10)
此处的操作顺序为:1/2 = 0
(整数除法截断小数位),后跟float64(0) = 0
,然后是fmt.Println(0)
。
因此,简而言之:整数除法会被截断为0。其他所有方法都可以正常工作。
正如@Amadan所说,可以通过强制转换整数之一float64(1) / 2 = 0.5
来强制进行浮点除法。