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