繁体   English   中英

Golang 无法使用 math.Float64frombits 将 []byte("1575455669.4") 转换为 float64

[英]Golang cannot convert []byte("1575455669.4") to float64 using math.Float64frombits

我有以下代码:

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)尝试相同的转换时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)

您有一个数字作为其 base-10 字符串表示形式,您必须使用strconv.ParseFloat(string(x), 64)来解析它并将其作为float64

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM