go - 从[]个字节中解析浮点值的最佳方法是什么?

标签 go byte data-conversion

我有一个简单地使用ioutil.ReadFile()读取文件的函数。返回的类型为[]byte,尽管值本身可以表示为浮点数。

我正在以这种方式转换[]byte(其中value是从读取文件的函数返回的[]byte):

var floatValue float64
fmt.Fscanf(bytes.NewReader(value), "%f", &floatValue)

这真的是从[]byte中提取/解析有效float值的唯一方法吗?有一个类似的discussion,但是看起来它并没有真正走到任何地方。

最佳答案

您可以轻松地为此使用 strconv.ParseFloat ,只需先将[]byte转换为字符串即可。与创建阅读器并使用类似scanf的函数进行扫描相比,这无疑会减少开销。

sb := []byte("3.1415")
s := string(sb)

f, err := strconv.ParseFloat(s, 64)
if err != nil {
    panic("whoops!")
}

fmt.Printf("%f\n", f)

输出:
3.141500

关于go - 从[]个字节中解析浮点值的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58465925/

相关文章:

pointers - 为什么 fmt.Println 在打印指针时不一致?

oop - 在没有语言支持类型层次结构的情况下对相关事物的层次结构进行建模

java - 创建 Java UDP 服务器时,我为数据包缓冲区分配多少字节?

arduino - 将表示为字符串的 MAC 地址转换为 uint8_t,Arduino

go - 如何获取当前函数名

c# - 将字节数组转换为 16 位 float

python - 将字符中的 float 转换为 float (Python)

Golang - 从 YearDay int32 中查找月份和日期

javascript - 如何在不使用 DOM 函数的情况下将 Uint8ClampedArray 转换为图像?

json - 如何将来自 HTTP Get 请求的数据存储在结构体 slice 中