我想獲得包含兩個(gè)整數(shù)除法的運(yùn)算的最接近值。我的初始函數(shù)是這樣的,它總是四舍五入到較小的整數(shù)。func Percent(x int, y int) int { p := x * 100 / y return p}因此,例如,當(dāng)結(jié)果為 時(shí)5.75,我想四舍五入到6,但上面的函數(shù)返回5。我嘗試使用math.Round,但它需要接收一個(gè)float類型并返回一個(gè)浮點(diǎn)類型。因此,當(dāng)操作中有很多參數(shù)時(shí),這需要大量的轉(zhuǎn)換。所以我想知道四舍五入到最接近整數(shù)的干凈慣用方法是什么?
2 回答

泛舟湖上清波郎朗
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
您的操作使用所有整數(shù),因此輸出將是一個(gè)整數(shù),因此您肯定需要先將它們轉(zhuǎn)換為浮點(diǎn)數(shù),然后您可以將浮點(diǎn)數(shù)轉(zhuǎn)換為最接近的整數(shù)(5.75 到 5)
因?yàn)橄旅娴拇a將為您工作。你甚至不需要使用 math.Round
func Percent(x int, y int) int {
p := float64(x * 100) / float64(y)
return int(p+0.5)
}

慕尼黑5688855
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊
只需從您的整數(shù)創(chuàng)建浮點(diǎn)值,然后從舍入的浮點(diǎn)結(jié)果中創(chuàng)建一個(gè)整數(shù)值:
func RoundPercent(x int, y int) int {
p := float64(x * 100) / float64(y)
return int(math.Round(p))
}
- 2 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)
0/150
提交
取消