Convertir un entier en nombre flottant


127

Comment convertir une valeur entière en float64type?

j'ai essayé

float(integer_value)

Mais cela ne fonctionne pas. Et je ne trouve aucun paquet qui fait cela sur Golang.org

Comment obtenir des float64valeurs à partir de valeurs entières?

Réponses:


180

Il n'y a pas de floattype. On dirait que tu veux float64. Vous pouvez également l'utiliser float32si vous n'avez besoin que d'une valeur à virgule flottante simple précision.

package main

import "fmt"

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

Notons que le compilateur de go n'est pas intuitif à ce sujet. a := uint(8); b := uint(5); c := float32(a/b)fera c1.00000, pas 1.6.
isomorphismes

34

Par souci d'exhaustivité, voici un lien vers la documentation de golang qui décrit tous les types . Dans votre cas, ce sont des types numériques:

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

Ce qui signifie que vous devez utiliser 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

Les conversions de type T ()T est le type de données souhaité du résultat sont assez simples dans GoLang.

Dans mon programme, je scanne un entier i à partir de l'entrée utilisateur, j'effectue une conversion de type dessus et je le stocke dans la variable f . La sortie imprime l' float64équivalent de l' intentrée. float32le type de données est également disponible dans GoLang

Code:

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)
}

Solution:

>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.