私はちょうどGoを学習し始めました。標準入力からfloat64に文字列を変換しようとしていますので、入力値に対して算術演算を実行できます。GolangのParseFloatを使って文字列入力をfloat64に変換
出力値は、入力値にかかわらず、「0フィートはメートルに変換されます」と返します。私は、入力でParseFloatを呼び出した後に値がゼロである理由を理解できません。
誰かがなぜ私にこのことが起こっているのかを指摘できたら、私はそれを高く評価します。 1.8\n
:
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メイン(){ fmt.Println( "!\ N \ nこのプログラムはあなたのためメートルに足を変換します\ n" は) フィート:= "35" feetFloat、_:= strconv.ParseFloat(フィート、64) メートル:=のfeetToMeters(feetFloat)は fmt.Printf( "メートルに換算%のVの足があなた%のVメーターを与える"、feetFloatは、メートル) } '私は、このように変更し、それは私に正しい答えを与えます。問題は読者にあるべきです。あなたが 'fmt.Println(feet)'の場合はどうなりますか? – jonathanGB
reader.ReadStringおよびstrconv.ParseFloatから返されたエラーを処理します。このエラーは、この問題に関するいくつかの洞察を提供するかもしれません。 –
@jonathanGBありがとう、私は今それが新しい行の文字を同様に印刷していたことを認識します。 – efettero