arrays - 将字节数组转换为 float64

标签 arrays go strconv

我正在尝试转换从文件中读取的字节数组,该文件实际上恰好是一个 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/

相关文章:

javascript - 从数组中删除项目,重新排序项目,然后放回去(reactjs)

php - 在编写查询时需要帮助

loops - 无限循环 : keep printing a single line

java - 是否有相当于 VB6 Strconv 的 Java(Android)

javascript - 通过VueJS中的多个复选框将平面数组添加到v模型

C# 多变量数组

go - 你如何使用 Go 1.16 在子文件夹/包中嵌入功能?

go - 如何为此正确添加校验和 header ?

go - 解析数字字符串数字

go - 为什么我会收到 Go error "panic: strconv: illegal AppendInt/FormatInt base"