我剛剛開始學習Go,並試圖將字符串從標準輸入轉換爲float64,以便可以對輸入值執行算術運算。使用Golang中的ParseFloat將字符串輸入轉換爲float64
無論輸入值如何,輸出返回「0英尺轉換爲米給你0米」。在輸入中調用ParseFloat後,我無法弄清楚爲什麼值爲零。
如果有人可以請指出爲什麼發生這種情況,我將不勝感激。
const conversion float64 = 0.3048
func feetToMeters (feet float64) (meters float64) {
return feet * conversion
}
func main(){
fmt.Println("\n\nThis program will convert feet to meters for you!\n")
reader := bufio.NewReader(os.Stdin)
fmt.Println("Enter feet value: \n")
feet, _ := reader.ReadString('\n')
feetFloat, _ := strconv.ParseFloat(feet, 64)
meters := feetToMeters(feetFloat)
fmt.Printf("%v feet converted to meters give you %v meters",feetFloat,meters)
}
'FUNC的main(){ fmt.Println( 「!\ n \ n該程序將英尺轉換爲米爲你\ n」) 腳:= 「35」 feetFloat,_:= strconv.ParseFloat(英尺64) 米:= feetToMeters(feetFloat) fmt.Printf( 「轉換爲米%v腳給您%v米」,feetFloat,米) }'我修改這一點,它給了我正確的答案。問題應該與讀者一起。如果你'fmt.Println(英尺)'會發生什麼? – jonathanGB
處理從reader.ReadString和strconv.ParseFloat返回的錯誤。這些錯誤可能會提供有關該問題的一些見解。 –
謝謝@jonathanGB,現在我意識到它還打印了一個新的字符。 – efettero