我正试图在GoLang中将一个[]uint8
字节的切片转换成一个float64
字节的切片.我在网上找不到解决这个问题的方法.我看到过先转换成字符串,然后再转换成float64
的建议,但这似乎不起作用,它失go 了它的值,最后我得到了零.
示例:
metric.Value, _ = strconv.ParseFloat(string(column.Value), 64)
而且它不起作用...
我正试图在GoLang中将一个[]uint8
字节的切片转换成一个float64
字节的切片.我在网上找不到解决这个问题的方法.我看到过先转换成字符串,然后再转换成float64
的建议,但这似乎不起作用,它失go 了它的值,最后我得到了零.
示例:
metric.Value, _ = strconv.ParseFloat(string(column.Value), 64)
而且它不起作用...
例如
package main
import (
"encoding/binary"
"fmt"
"math"
)
func Float64frombytes(bytes []byte) float64 {
bits := binary.LittleEndian.Uint64(bytes)
float := math.Float64frombits(bits)
return float
}
func Float64bytes(float float64) []byte {
bits := math.Float64bits(float)
bytes := make([]byte, 8)
binary.LittleEndian.PutUint64(bytes, bits)
return bytes
}
func main() {
bytes := Float64bytes(math.Pi)
fmt.Println(bytes)
float := Float64frombytes(bytes)
fmt.Println(float)
}
输出:
[24 45 68 84 251 33 9 64]
3.141592653589793