GO关于float类型四舍五入的方法
GO语言float取整有两种方式:向下取整math.Floor() 和向上取整math.Ceil();
分别通过+0.5和-0.5都可以实现四舍五入,但……
x := 0.2 fmt.Println("x四舍五入后:", math.Ceil(x-0.5))
运行结果为:
x四舍五入后: -0
为了防止意外,还是采用+0.5向下取整比较合适:
number := []float64{3.14, 8.93, 2.41, 6.2, 5, 0.9, 0.1, 47.5} for _, value := range number{ fmt.Println("参考值:", value, " 向下取整:", math.Floor(value), "向上取整:", math.Ceil(value), " 四舍五入:", math.Floor(value+0.5)) }
运行结果为:
参考值: 3.14 向下取整: 3 向上取整: 4 四舍五入: 3 参考值: 8.93 向下取整: 8 向上取整: 9 四舍五入: 9 参考值: 2.41 向下取整: 2 向上取整: 3 四舍五入: 2 参考值: 6.2 向下取整: 6 向上取整: 7 四舍五入: 6 参考值: 5 向下取整: 5 向上取整: 5 四舍五入: 5 参考值: 0.9 向下取整: 0 向上取整: 1 四舍五入: 1 参考值: 0.1 向下取整: 0 向上取整: 1 四舍五入: 0 参考值: 47.5 向下取整: 47 向上取整: 48 四舍五入: 48
结论,推荐这种方式:
math.Floor(value+0.5)