douliu8327 2015-01-10 11:02
浏览 256
已采纳

如何在Golang中将[] string转换为[] float64?

I'm new to programming, and trying to write a simple average program in Go.

package main

import (
    "fmt"
    "os"
)

var numbers []float64
var sum float64 = 0

func main() {

    if len(os.Args) > 1 {

        numbers = os.Args[1:]

    }

    fmt.Println("Numbers are: ", numbers)
    for _, value := range numbers {
        sum += value
    }

}

http://play.golang.org/p/TWNltPO71N

when I build the program, I got this error:

prog.go:15: cannot use os.Args[1:] (type []string) as type []float64 in assignment
[process exited with non-zero status]

So how to convert a slice of string to a slice of float numbers? Can I map a convert function to the slice?

  • 写回答

2条回答 默认 最新

  • dongzhan1878 2015-01-10 11:16
    关注

    You need to convert string to float64 using strconv.ParseFloat function:

    package main
    
    import (
        "fmt"
        "os"
        "strconv"
    )
    
    var numbers []float64
    var sum float64 = 0
    
    func main() {
    
        if len(os.Args) <= 1 {
            return
        }
    
        for _, arg := range os.Args[1:] {
            if n, err := strconv.ParseFloat(arg, 64); err == nil {
                numbers = append(numbers, n)
            }
        }
    
        fmt.Println("Numbers are: ", numbers)
        for _, value := range numbers {
            sum += value
        }
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题