go中的楼层划分

jbr*_*rre 5 python math go

我正在将一些旧的内容从 Python 翻译成 Go。在此代码中,我在 Python 中使用了向下取整除法和向下取整运算符。

d = b // c
# (c isn't a comment, I use the // operator from python)
Run Code Online (Sandbox Code Playgroud)

我的问题是,Go 中不存在这个运算符。在 Go 中翻译最简单的方法是什么?

zmb*_*mbq 7

如果bc是整数,b / c则已经是楼层除法。如果它们是 float64,请使用math.Floor(b/c). 如果使用 float32 (或任何其他数字类型),则必须首先转换:math.Floor(float64(b)/float64(c))

  • `b/c` 不是向下除法,而是向零舍入除法。`(-1)//2` 在 python 中是 -1,`(-1)/2` 在 go 中是 0。 (16认同)