我有一个简单地使用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/