今天在实现一个数据时总是因为取不到具体的数值而出现误差,问了下golang群里的小伙伴,最终得以解决,仅以此篇记录golang四舍五入的知识点。
golang中,目前还没有一个直接函数可以实现四舍五入,所以需要在取值之前需要先额外的加一个0.5,如下代码所示:
package main
import (
"fmt"
"math"
)
func main() {
x:=2.0/3.0
a:=math.Floor(x)
b:=math.Floor(x+0.5)
y:=1.0/3
e:=math.Floor(y)
f:=math.Floor(y+0.5)
z:=1.0/2
m:=math.Floor(z)
n:=math.Floor(z+0.5)
fmt.Printf("x=%f,a=%f,b=%f,\ny=%f,e=%f,f=%f,\nz=%f,m=%f,n=%f",x,a,b,y,e,f,z,m,n)
}
输出结果:
x=0.666667,a=0.000000,b=1.000000,
y=0.333333,e=0.000000,f=0.000000,
z=0.500000,m=0.000000,n=1.000000
主要用了math中的floor方法,其中变量b、f、n就是实现的四舍五入后的值