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