Go:使用strconv.ParseFloat将字符串转换为浮点值返回0

Go:使用strconv.ParseFloat将字符串转换为浮点值返回0,go,Go,我有以下代码: reader := bufio.NewReader(os.Stdin) fmt.Print("room: width x length: ") inStr, _ := reader.ReadString('\n') result := strings.Split(inStr, "x") string1, _ := strconv.ParseFloat(result[0], 64) string2, _ := strconv.ParseFloat(result[1], 64)

我有以下代码:

reader := bufio.NewReader(os.Stdin)
fmt.Print("room: width x length: ")

inStr, _ := reader.ReadString('\n')
result := strings.Split(inStr, "x")

string1, _ := strconv.ParseFloat(result[0], 64)
string2, _ := strconv.ParseFloat(result[1], 64)
fmt.Print(string2)
在最后一个print语句中,如果我打印
string1
它将返回正确的值,但是如果我尝试打印
string2
它将返回0,无论我向控制台输入了什么值

有人知道为什么会这样吗? 谢谢

更换

result := strings.Split(inStr, "x")

因为字符串包含
\n
,所以第二个数组元素也包含它

另外,我真的建议在发布此类问题之前查看错误消息。您可以看到strconv.ParseFloat:解析“23\n”:作为下一个代码的结果,语法无效

string2, err := strconv.ParseFloat(result[1], 64)
if err != nil {
    fmt.Println(e)
}
替换

result := strings.Split(inStr, "x")

因为字符串包含
\n
,所以第二个数组元素也包含它

另外,我真的建议在发布此类问题之前查看错误消息。您可以看到strconv.ParseFloat:解析“23\n”:作为下一个代码的结果,语法无效

string2, err := strconv.ParseFloat(result[1], 64)
if err != nil {
    fmt.Println(e)
}