一、概述
官方的math
包中提供了取整的方法,向上取整math.Ceil()
,向下取整math.Floor()
二、用法
1 2 3 4 5 6 7 8 9 10 11 12 |
package main import ( "fmt" "math" ) func main(){ x := 1.1 fmt.Println(math.Ceil(x)) // 2 fmt.Println(math.Floor(x)) // 1 } |
要注意的是,取完整后返回的并不是真正的整数,而是float64
类型,所以如果需要int
类型的话需要手动转换。
2017-10-14追加:一个奇葩的四舍五入方法
golang没有类似python的round()函数,搜了一下很多都非常复杂,最后看到了一个清新脱俗的:先+0.5,然后向下取整!
简单得难以置信,想想也没有什么不对,这脑洞很佩服。
1 2 3 |
func round(x float64){ return int(math.Floor(x + 0.5)) } |
1F
int(math.Floor(x + 0/5)) 符号错了
B1
@ yuan 已经改过来了,谢谢指正。