Строка в Float64: strconv.ParseFloat() с несколькими значениями в контексте с одним значением

У меня есть массив фрагментов STRING, как это:

[[header1 header2 startdate enddate header3 header4] 
[item1 100 01/01/2017 02/01/2017 5343340.56343 3.77252223956] 
[item2 554 01/01/2017 02/01/2017 22139.461201388 17.232284405]]

Имейте в виду, что массив продолжает расти. Я просто публикую образец массива.

Теперь я преобразовал некоторые из чисел с плавающей точкой в ​​строку, чтобы я мог добавить их к фрагментам строки. Тем не менее, мне нужно сделать некоторые математические с этими числами. Я хочу добавить номер строки (5343340.56343) из 2-го среза к 3-му номеру строки (22139.461201388). То же самое с двумя другими числами с плавающей запятой в каждом срезе. Для этого мне нужно сначала преобразовать их в float64. После получения суммы мне нужно будет преобразовать их обратно в строку, чтобы я мог добавить ее к своему фрагменту, который я выясню, как это сделать.

Чтобы преобразовать строковый элемент в float64, вот что у меня есть:

for _, i := range data[1:] {
    if i[0] == "item1" {
        j := strconv.ParseFloat(i[4], 64)


    }
    if i[0] == "item2" {
        k := strconv.ParseFloat(i[4], 64)
    }
    sum := j + k
}

Это дает ошибку: множественное значение strconv.ParseFloat() в контексте одного значения. Итак, мой вопрос:

  1. Как я могу преобразовать строковое значение в Float64.

  2. Необязательно: Любые предложения о том, как я могу добавить 2 числа с плавающей запятой от каждого среза?

Любая помощь приветствуется!

1 ответ

Решение

Ошибка, которую вы получаете, потому что функция ParseFloat возвращает два аргумента, а вы игнорируете второй.

j, err := strconv.ParseFloat(i[4], 64)
if err != nil {
  // insert error handling here
}
(...)

Старайтесь всегда проверять сигнатуру функции в godocs перед ее использованием.

Другие вопросы по тегам