2016-04-03 48 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) 
}