Konvertieren Sie eine Ganzzahl in eine Gleitkommazahl


127

Wie konvertiere ich einen ganzzahligen Wert in float64Typ?

Ich habe es versucht

float(integer_value)

Das geht aber nicht. Und kann kein Paket finden, das dies auf Golang.org tut

Wie erhalte ich float64Werte aus ganzzahligen Werten?

Antworten:


180

Es gibt keinen floatTyp. Sieht aus wie du willst float64. Sie können es auch verwenden, float32wenn Sie nur einen Gleitkommawert mit einfacher Genauigkeit benötigen.

package main

import "fmt"

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

Beachten wir, dass der Compiler von go diesbezüglich nicht intuitiv ist. a := uint(8); b := uint(5); c := float32(a/b)wird c1,00000 sein, nicht 1,6.
Isomorphismen

33

Der Vollständigkeit halber finden Sie hier einen Link zur Golang-Dokumentation, in der alle Arten beschrieben werden . In Ihrem Fall handelt es sich um numerische Typen:

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

Was bedeutet, dass Sie verwenden müssen 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

Typkonvertierungen T (), wobei T der gewünschte Datentyp des Ergebnisses ist, sind in GoLang recht einfach.

In meinem Programm scanne ich eine Ganzzahl i aus der Benutzereingabe, führe eine Typkonvertierung durch und speichere sie in der Variablen f . Die Ausgabe gibt das float64Äquivalent der intEingabe aus. float32Der Datentyp ist auch in GoLang verfügbar

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

Lösung:

>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.