Go语言 将整数转换为浮点数

unguejic  于 2022-12-07  发布在  Go
关注(0)|答案(6)|浏览(408)

如何将整数值转换为float64类型?
我试过了

float(integer_value)

但是这不起作用。而且在Golang.org上找不到任何这样的软件包
如何从整数值获取float64值?

6rvt4ljy

6rvt4ljy1#

没有float类型。看起来您需要float64。如果您只需要单精度浮点值,也可以使用float32

package main

import "fmt"

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

20jt8wwn2#

为了完整起见,这里有一个golang文档的链接,它描述了所有类型。在您的例子中,它是数字类型:

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

这意味着您需要使用float64(integer_value)

quhf5bfb

quhf5bfb3#

就做这些

package main

func main(){
a:= 70
afloat := float64(a)
    fmt.Printf("type of a is %T\n", a) // will int
    fmt.Printf("type of a is %T\n", afloat) //will float64
}
h6my8fg2

h6my8fg24#

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

mefy6pfw5#

正确放置括号是关键:

package main

import (
    "fmt"
)

func main() {

    var payload uint32
    var fpayload float32
    payload = 1320
    
    // works
    fpayload = float32(payload) / 100.0
    fmt.Printf("%T = %d, %T = %f\n", payload, payload, fpayload, fpayload)
    
    // doesn't work
    fpayload = float32(payload / 100.0)
    fmt.Printf("%T = %d, %T = %f\n", payload, payload, fpayload, fpayload)
}

结果:
单位32 = 1320,浮点数32 = 13.200000
单位32 = 1320,浮点数32 = 13.000000
The Go Playground

olhwl3o2

olhwl3o26#

类型转换T(),其中T是结果所需的数据类型,在GoLang中非常简单。
在我的程序中,我从用户输入中扫描一个整数i,对其执行类型转换并将其存储在变量f中。

代码:

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

解决方案:

>>> Enter an Integer input:
>>> 232332
>>> The float64 representation of 232332 is 232332.000000

相关问题