为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang中的整数运算中获得最近的int?

如何在golang中的整数运算中获得最近的int?

Go
茅侃侃 2022-06-01 16:57:16
我想获得包含两个整数除法的运算的最接近值。我的初始函数是这样的,它总是四舍五入到较小的整数。func Percent(x int, y int) int {            p := x * 100 / y            return p}因此,例如,当结果为 时5.75,我想四舍五入到6,但上面的函数返回5。我尝试使用math.Round,但它需要接收一个float类型并返回一个浮点类型。因此,当操作中有很多参数时,这需要大量的转换。所以我想知道四舍五入到最接近整数的干净惯用方法是什么?
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

您的操作使用所有整数,因此输出将是一个整数,因此您肯定需要先将它们转换为浮点数,然后您可以将浮点数转换为最接近的整数(5.75 到 5)


因为下面的代码将为您工作。你甚至不需要使用 math.Round


func Percent(x int, y int) int {

    p := float64(x * 100) / float64(y)

    return int(p+0.5)

}


查看完整回答
反对 回复 2022-06-01
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

只需从您的整数创建浮点值,然后从舍入的浮点结果中创建一个整数值:


func RoundPercent(x int, y int) int {

    p := float64(x * 100) / float64(y)

    return int(math.Round(p))

}


查看完整回答
反对 回复 2022-06-01
  • 2 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信