Каков наилучший способ для анализа значения с плавающей запятой из [] байтов? - PullRequest
0 голосов
/ 19 октября 2019

У меня есть функция, которая просто читает файл с ioutil.ReadFile(). Возвращаемый тип - []byte, хотя само значение может быть представлено как число с плавающей запятой.

Я преобразую []byte таким образом (где value - это []byte, возвращаемое из функциикоторый читает файл):

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

Действительно ли это единственный способ извлечь / проанализировать действительное значение с плавающей точкой из []byte? Есть подобное обсуждение , но похоже, что оно никуда не делось.

1 Ответ

0 голосов
/ 19 октября 2019

Вы можете легко использовать 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
...