Converter um número inteiro em um número flutuante


127

Como converto um valor inteiro para o float64tipo?

eu tentei

float(integer_value)

Mas isso não funciona. E não encontra nenhum pacote que faça isso no Golang.org

Como obtenho float64valores de valores inteiros?

Respostas:


180

Não existe nenhum floattipo. Parece que você quer float64. Você também pode usar float32se precisar apenas de um valor de ponto flutuante de precisão única.

package main

import "fmt"

func main() {
    i := 5
    f := float64(i)
    fmt.Printf("f is %f\n", f)
}

Vamos observar que o compilador da go não é intuitivo sobre isso. a := uint(8); b := uint(5); c := float32(a/b)será c1.00000, não 1.6.
Isomorphismes

33

Por uma questão de integridade, aqui está um link para a documentação do golang que descreve todos os tipos . No seu caso, são tipos numéricos:

uint8       the set of all unsigned  8-bit integers (0 to 255)
uint16      the set of all unsigned 16-bit integers (0 to 65535)
uint32      the set of all unsigned 32-bit integers (0 to 4294967295)
uint64      the set of all unsigned 64-bit integers (0 to 18446744073709551615)

int8        the set of all signed  8-bit integers (-128 to 127)
int16       the set of all signed 16-bit integers (-32768 to 32767)
int32       the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64       the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)

float32     the set of all IEEE-754 32-bit floating-point numbers
float64     the set of all IEEE-754 64-bit floating-point numbers

complex64   the set of all complex numbers with float32 real and imaginary parts
complex128  the set of all complex numbers with float64 real and imaginary parts

byte        alias for uint8
rune        alias for int32

O que significa que você precisa usar float64(integer_value).


2

intutils.ToFloat32

// ToFloat32 converts a int num to a float32 num
func ToFloat32(in int) float32 {
    return float32(in)
}

// ToFloat64 converts a int num to a float64 num
func ToFloat64(in int) float64 {
    return float64(in)
}

0

Conversões de tipo T () em que T é o tipo de dados desejado do resultado, são bastante simples no GoLang.

No meu programa, digitalizo um número inteiro i da entrada do usuário , faço uma conversão de tipo nele e armazeno-o na variável f . A saída imprime o float64equivalente da intentrada.float32tipo de dados também está disponível no GoLang

Código:

package main
import "fmt"
func main() {
    var i int
    fmt.Println("Enter an Integer input: ")
    fmt.Scanf("%d", &i)
    f := float64(i)
    fmt.Printf("The float64 representation of %d is %f\n", i, f)
}

Solução:

>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.