我想得到一个包含两个整数除法的运算的最接近值。我的初始函数就是这样,它总是四舍五入到较低的整数。
func Percent(x int, y int) int {
p := x * 100 / y
return p
}
例如,当结果为5.75
时,我想四舍五入为6
,但是上面的函数返回5
。
我尝试使用math.Round
,但它需要接收float
类型并返回浮点类型。因此,如果操作中有许多参数,则需要进行大量转换,这很脏。
所以我想知道什么是最简单的舍入方式舍入到最接近的整数?
只需从您的整数创建浮点值,然后从四舍五入的浮点结果创建一个整数值:
func RoundPercent(x int, y int) int {
p := float64(x * 100) / float64(y)
return int(math.Round(p))
}
您的操作使用的是所有整数,因此输出将是整数,因此绝对需要先将它们转换为浮点数,然后才能将float转换为最近的int(5.75到5)] >>
对于以下代码,您将可以使用。 您甚至不需要使用math.Round
func Percent(x int, y int) int {
p := float64(x * 100) / float64(y)
return int(p+0.5)
}