2016-04-03 241 views
0

我有以下代码:转到:将字符串转换使用strconv.ParseFloat返回到浮0

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) 

在最后的打印语句,如果我打印string1返回正确的值,但如果我尝试打印string2无论输入到控制台的值是多少,它都会返回0。

有谁知道为什么会发生这种情况? 谢谢!

回答

5

更换

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

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

作为字符串包含\n所以你的第二个数组元素都包含它。

此外,我真的建议在发布此类问题之前查看错误消息。您可以看到strconv.ParseFloat: parsing "23\n": invalid syntax作为下一个代码的结果

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