2017-02-09 12 views
-1

私はこのような文字列スライスの配列を持っている:文字列:複数値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]] 

アレイは増加を続けていることに注意してください。私はサンプル配列を投稿しています。

浮動小数点数を文字列に変換して、文字列スライスに追加できるようにしました。しかし、私はそれらの数でいくつかの数学を行う必要があります。 2番目のスライスの文字列番号(5343340.56343)を3番目の文字列番号(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が2つの引数を返し、2番目の引数を無視しているためです。

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

使用する前に、機能の署名をgodocsに必ずチェックしてみてください。

+1

ありがとう、gはすべての答えを持っているようです。私はstackoverflowで解決策を探して時間を費やしていました。 – shishh03

関連する問題