func main() {
	var a int = 3
	var b int = 7
	fmt.Println(a / b)  // 结果为0,不符合预期
	num0, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", a/b), 64)                   // 保留2位小数
	fmt.Println(num0)   // 结果为0,不符合预期
	num1, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", float64(a)/float64(b)), 64) // 保留2位小数
	fmt.Println(num1)   // 0.43
	num2, _ := strconv.ParseFloat(fmt.Sprintf("%.5f", float64(a)/float64(b)), 64) // 保留5位小数
	fmt.Println(num2)   // 0.42857
}

在a>b的情况下,a/b得到的结果是商,没有小数。

若只想得到商,也就是不要余数整除的结果,如20/6想得到结果3,那么可以写成%.0f来只得到整数

不论a>b还是a<b,只有先转换为浮点数后再进行除操作才是带小数最准确的结果。