13

次のコード スニペットがあります。

package main

import("fmt";"flag")

func main() {
    var a = flag.Int("a",0,"divident")
    var b = flag.Int("b",1,"divisor")
    flag.Parse()

    fmt.Printf("%f",*a / *b )
}

-a 3 および -b 2 コマンド ライン引数の場合、出力は次のようになります。%!f(int=1)

この除算を強制的に浮動小数点にする最良/最もエレガントな方法は何ですか?

4

3 に答える 3

16

Go には変数の暗黙的な型キャストがないため、 float に変換する必要があります。

fmt.Printf("%f", float32(a)/float32(b))

また

fmt.Printf("%f", float32(a/b))

あなたが望むものに応じて。また、チェックしてくださいfloat64- それがあなたのボートを浮かせるかどうか。

于 2013-12-13T16:40:06.180 に答える
5

最初に型を float に変換する必要があります。

一般に、float 以外の数値型 ( ints など)aとがある場合はb、float 除算を使用するためにfloat32(a)/ float32(b)(float64場合によっては) 使用します。これは、浮動小数点数を整数として、または整数を複素数として扱いたい場合は、他の数値型にも適用され、オペランドを変換します。この場合、a が 3 で b が 2 の場合、float32(a)/float32(b)1.5 になります。

整数除算を行いたいが、結果を浮動小数点数にする場合は、結果を のように変換しfloat32(a/b)ます。この場合、a が 3 で b が 2 の場合、float32(a/b)1.0 になります。

于 2013-12-13T16:34:17.023 に答える
-5

除算結果をfloatとしてキャストする必要があります

于 2013-12-13T16:33:54.543 に答える