我想返回大于或等于整数除法的最小整数值。所以我使用math.ceil
,但无法获得我想要的值。
package main
import (
"fmt"
"math"
)
func main() {
var pagesize int = 10
var length int = 43
d := float64(length / pagesize)
page := int(math.Ceil(d))
fmt.Println(page)
// output 4 not 5
}
http://golang.org/pkg/math/#Ceil
http://play.golang.org/p/asHta1HkO_
有什么问题? 感谢。
答案 0 :(得分:32)
该行
d := float64(length / pagesize)
转换为浮动除法的结果。由于除法本身是整数除法,因此得到4,因此d = 4.0且math.Ceil(d)
为4。
用
替换该行d := float64(length) / float64(pagesize)
您将拥有d=4.3
和int(math.Ceil(d))=5
。
答案 1 :(得分:9)
答案 2 :(得分:2)
请注意,您可以使用
x, y := length, pagesize
q := (x + y - 1) / y;
x >= 0
和y > 0
。这也将很快。
或者为避免x+y
溢出:
q := 1 + ((x - 1) / y)
答案 3 :(得分:0)
您可以检查余数,以查看是否应将其提高到下一个整数。
COOKS=32
XDG_SESSION_ID=889
SHELL=/bin/bash
....