golang - 像 php 一样的 ceil 函数?

我想返回大于或等于整数除法的最小整数值。所以我使用了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_


怎么了?谢谢。


吃鸡游戏
浏览 296回答 3
3回答

MMTTMM

线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。

慕森卡

避免浮点运算(为了性能和清晰度):x, y := length, pagesize q := (x + y - 1) / y;对于x >= 0和y > 0。或者为了避免溢出x+y:q := 1 + (x - 1) / y与 C++ 版本相同:C/C++ 中整数除法的快速上限
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go