[英]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.