我有一个这样的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)添加到第三个字符串编号(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()所以我的问题是:
如何将字符串值转换为Float64。
可选:关于如何从每个切片中添加2个浮点数的任何建议?
任何帮助表示赞赏!
您收到的错误是因为该函数ParseFloat返回两个参数,而您忽略了第二个。
ParseFloat
j, err := strconv.ParseFloat(i[4], 64) if err != nil { // insert error handling here } (...)
在使用它之前,请尝试始终在godocs中检查该函数的签名。