簡體   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