我有一个像这样的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个浮点数的任何建议?
任何帮助表示赞赏!
答案 0 :(得分:9)
你得到的错误是因为函数ParseFloat
返回两个参数而你忽略了第二个参数。
j, err := strconv.ParseFloat(i[4], 64)
if err != nil {
// insert error handling here
}
(...)
尝试在使用之前始终检查godocs中的功能签名。