Golang Float64和字节数组之间的交换

Go语言是强类型语言,不支持类型的隐式类型转换,所有类型都需要显示进行转换,那么bytes数组如何转换为Float64,以及Float64将转换为bytes数组,也就是它们之间的互相转换如何做到。这两种类型的转换不能直接转换需要转换为中间类型然后再转换为对应的类型。

bytes数组转换为Float64

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package converter

import (
	"encoding/binary"
	"math"
)

func BytesToFloat64(bytes []byte) float64 {
	bits := binary.LittleEndian.Uint64(bytes)
	float := math.Float64frombits(bits)
	return float
}

float64转换为bytes数组

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
package converter

import (
	"encoding/binary"
	"math"
)


func Float64ToBytes(float float64) []byte {
	bits := math.Float64bits(float)
	bytes := make([]byte, 8)
	binary.LittleEndian.PutUint64(bytes, bits)
	return bytes
}
comments powered by Disqus