2016-04-03 15 views
0

Aşağıdaki kod var: i string1 baskı eğer doğru değer döndürür, ama baskı çalışırsanız,Git: strconv.ParseFloat döndürür kullanarak yüzer dize dönüştürme 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) 

son baskı açıklamasında string2 konsolda hangi değeri girdiğim önemli değil 0 değerini döndürür.

Bunun neden olduğunu bilen var mı? Teşekkürler! dize \n böylece ikinci dizi öğesi de bunu içeriyor içerdiğinden

cevap

5

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

ile

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

değiştirin.

Ayrıca, bu tür soruları göndermeden önce hata mesajlarına bakmanızı öneririm.

string2, err := strconv.ParseFloat(result[1], 64) 
if err != nil { 
    fmt.Println(e) 
} 
'un sonucu olarak strconv.ParseFloat: parsing "23\n": invalid syntax görebildi.