从下面的源代码中,我想得到浮点类型的结果 33.33
。
如果使用 fmt.Sprintf("%.2f", v)
可以很好地工作。但是想在 floatTest
函数中得到结果。怎么办?
func main() {
v := floatTest(30, 90)
fmt.Println(v)
// 33.33333333333333
vv := fmt.Sprintf("%.2f", v)
fmt.Println(vv)
// 33.33
}
func floatTest(count float64, total float64) float64 {
return (count / total * 100)
}
最佳答案
乘以 100;通过 int
转换截断;转换回 float32 并除以 100:
func precision2(f float64) float64 {
return float64(int(f*100)) / 100
}
https://play.golang.org/p/jbsdeQKgJji
这link有使用 math
包的示例 - 但我通常尽量避免包含用于琐碎操作的包。
关于algorithm - 如何用golang得到小数点后两位的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067724/