gpt4 book ai didi

go - Golang无法使用math.Float64frombits将[] byte (“1575455669.4”)转换为float64

转载 作者:行者123 更新时间:2023-12-01 21:22:29 27 4
gpt4 key购买 nike

我有以下代码:

x := []byte("1575455669.4")
bits := binary.LittleEndian.Uint64(x)
f := math.Float64frombits(bits)

在调用 fmt.Println(f)时,我期望 1.5754556694e+09。但是相反,我最终得到 1.451098468672448e-47
当我尝试通过 strconv.ParseFloat(string(x), 64)进行相同的转换时,我得到了正确的结果。我在这里做错了什么?

最佳答案

这:

x := []byte("1575455669.4")

将为您提供 "1575455669.4"字符串的(UTF-8编码)字节。这与使用 IEEE 754标准的浮点数 1575455669.4的内存表示形式无关。但是接下来要做的只是假设:
bits := binary.LittleEndian.Uint64(x)
f := math.Float64frombits(bits)

您有一个以10为基数的字符串表示形式的数字,必须使用 strconv.ParseFloat(string(x), 64)对其进行解析并将其作为 float64

关于go - Golang无法使用math.Float64frombits将[] byte (“1575455669.4”)转换为float64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59213049/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com