2017-02-09 1 views
-1

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

[[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) из второго фрагмента в третий номер строки (22139.461201388). То же самое с другими 2 поплавковыми числами в каждом фрагменте. Для этого мне нужно сначала преобразовать их в 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 поплавочных номера из каждого фрагмента?

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

ответ

3

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

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

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

+1

Спасибо, у godocs, кажется, есть все ответы. Я тратил время на поиск решений в stackoverflow. – shishh03

Смежные вопросы