我正在尝试转换从文件中读取的字节数组,该文件实际上恰好是一个 float 。我可以继续使用 strconv.ParseFloat
,但我想知道是否有任何更快的方法来实现这一点,而不是这种字符串转换开销?
以下片段来自另一篇文章:here但显然它不适用于上述场景。
提前感谢您的建议。
package main
import (
"encoding/binary"
"fmt"
"math"
)
func Float64frombytes(bytes []byte) float64 {
bits := binary.LittleEndian.Uint64(bytes)
float := math.Float64frombits(bits)
return float
}
func main() {
// This is read from a file, so its avaible as a byte array
input := []byte("1.11")
// This throws an exception obviously.
float := Float64frombytes()
fmt.Println(float)
}
最佳答案
不,没有其他方法可以做到这一点。
您列为非工作替代方法的方法将是最好的方法如果 float 直接存储在二进制中,但由于它存储为字符串 strconv.ParseFloat
是唯一的方法。
对不起。
关于arrays - 将字节数组转换为 float64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019359/