En Go, el paquete math proporciona funciones para redondear números, como math.Round(), math.Floor() y math.Ceil(). También se pueden usar trucos matemáticos para redondear a un número específico de decimales.
math.Round() – Redondeo al entero más cercano
La función math.Round() redondea un número flotante (float64) al entero más cercano.
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Round(3.75)) // Resultado: 4
fmt.Println(math.Round(3.25)) // Resultado: 3
fmt.Println(math.Round(-3.5)) // Resultado: -4
}
math.Floor() – Redondeo hacia abajo
La función math.Floor() devuelve el entero menor más cercano.
fmt.Println(math.Floor(3.75)) // Resultado: 3
fmt.Println(math.Floor(-3.25)) // Resultado: -4
math.Ceil() – Redondeo hacia arriba
La función math.Ceil() devuelve el entero mayor más cercano.
fmt.Println(math.Ceil(3.25)) // Resultado: 4
fmt.Println(math.Ceil(-3.75)) // Resultado: -3
Go no tiene una función nativa para redondear a un número específico de decimales, pero se puede hacer con matemáticas:
func RoundToDecimals(num float64, decimals int) float64 {
factor := math.Pow(10, float64(decimals))
return math.Round(num*factor) / factor
}
func main() {
fmt.Println(RoundToDecimals(3.14159, 2)) // Resultado: 3.14
}
Jorge García
Fullstack developer