0

我正在尝试转换从文件中读取的字节数组,该文件实际上恰好是一个浮点数。我可以继续使用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)
}
4

1 回答 1

1

不,没有其他方法可以做到这一点。

如果浮点数直接以二进制形式存储,那么您列为非工作替代方案的方法将是最好的方法,但由于它作为字符串存储strconv.ParseFloat是唯一的方法。

对不起。

于 2017-09-03T01:10:20.750 回答