Golang では、除算演算で小数が生成されることがよくあります。では、小数の除算演算を正しく実行するにはどうすればよいでしょうか?一緒に見てみましょう。
まず第一に、Golang で整数を除算すると、10 進形式の結果ではなく、整数部分の商が得られます。たとえば、式 5 / 2 の場合、結果を 2.5 にしたいのですが、実際には式の結果は 2 になります。では、どうすれば小数の商を求めることができるのでしょうか?答えは、オペランドの 1 つを浮動小数点数 1.0 で割ることです。コード例を次に示します。
a := 5 // 整数类型 b := 2 // 整数类型 result := float64(a) / 1.0 / float64(b) fmt.Printf("%.2f", result) // 输出结果为2.50
このコードは、まず 2 つの整数 a と b を浮動小数点型に変換し、次にオペランドの 1 つを 1.0 で除算して、結果を 10 進数形式で取得します。次に、別の例を見てみましょう。今回は、除数と被除数の両方を浮動小数点型に変換します:
a := 5.0 // 浮点类型 b := 2.0 // 浮点类型 result := a / b fmt.Printf("%.2f", result) // 输出结果为2.50
このように、データを手動で変換する必要がないため、10 進除算演算は比較的単純です。タイプの場合、1.0 オペランドを手動で追加する必要はありません。
さらに、10 進数の計算を実行するときに精度の問題が発生する可能性があります。たとえば、期待される結果は 0.1 0.2=0.3 ですが、実際には、この式の結果は 0.30000000000000004 になります。これは、コンピュータが 2 進数の 10 進数を計算するときに、2 つの小数点 0.1 と 0.2 を正確に表現できないためです。計算する値は非常に小さいですが、それでもプログラムの堅牢性と信頼性が低下する可能性があるため、10 進数の計算を実行する場合は特別な注意を払う必要があります。
つまり、Golangで10進除算演算を行う場合、オペランドを手動で浮動小数点型に変換して演算する方法と、一方のオペランドを浮動小数点型で除算する方法の2通りがあります。 10 進数形式で結果を取得するには、1.0 をポイントします。さらに、10 進数の計算には精度の問題が発生する可能性があるため、プログラムでこのような状況が発生しないように注意する必要があることに注意してください。
以上がgolangで小数の除算演算を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。