Saltar al contenido

Cómo redondear al int más cercano al lanzar float a int en go

Si encuentras algo que te causa duda puedes dejarnos un comentario y trataremos de ayudarte lo mas rápido que podamos.

Solución:

int(f+0.5) hará que se redondee hacia arriba si es> = .5

Podrías usar int(math.Round(f)) para redondear al número entero más cercano al convertir un flotante en un int en Go. El decimal también se descarta cuando un flotante se establece en un byte o una runa. El truncamiento no ocurre cuando se establece en un string o un bool.

package main

import (
  . "fmt"
  . "math"
)

func main() 
  f := 3.6
  c := []interfacebyte(f), f, int(Round(f)), rune(f), Sprintf("%.f", f), f != 0
  checkType(c)

func checkType(s []interface) 
  for k, _ := range s 
     Printf("%T %vn", s[k], s[k])
  

Round devuelve el número entero más cercano, redondeando a la mitad desde cero. Consulte https://golang.org/pkg/math/#Round. Consulte https://stackoverflow.com/a/61503758/12817546.

f := 3.6 trunca a “uint8 3”, f es “float64 3.6”, int(Round(f)) redondea a “int 4”, rune(f) trunca a “int32 3”, Sprintf("%.f", f) es “string 3.6 “y f != 0 salidas “bool true”.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *