我有一个函数,可以简单地使用ioutil.ReadFile()
读取文件。返回的类型为[]byte
,尽管该值本身可以表示为浮点数。
我正在以这种方式转换[]byte
(其中value
是从读取文件的函数返回的[]byte
):
var floatValue float64
fmt.Fscanf(bytes.NewReader(value), "%f", &floatValue)
这真的是从[]byte
中提取/解析有效浮点值的唯一方法吗?有一个类似的discussion,但看起来它并没有真正走到任何地方。
答案 0 :(得分:0)
您可以轻松地使用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