ホームページ >バックエンド開発 >Golang >golang 浮動小数点を整数に変換する

golang 浮動小数点を整数に変換する

WBOY
WBOYオリジナル
2023-05-12 21:33:071593ブラウズ

Golang は、浮動小数点数や整数などの複数のデータ型をサポートする高性能プログラミング言語です。実際の開発では、計算や処理のために浮動小数点数を整数に変換する必要がある場合があります。この記事では、Golang で浮動小数点数を整数に変換する方法とテクニックを紹介します。

  1. 強制型変換

Golang では、強制型変換を使用して浮動小数点数を整数に変換できます。例:

f := 3.14
i := int(f)

この例では、浮動小数点数 3.14 を整数に変換し、整数値 3 を取得します。キャスト型変換では小数部分が破棄され、整数部分のみが保持されることに注意してください。負の数をキャストすると、小数部分はゼロに向かって丸められます。例:

f := -3.14
i := int(f)

この例では、i の値は -4 ではなく -3 です。これは、キャストによって小数部分が四捨五入されるのではなく、ゼロに向かって丸められるためです。

  1. math パッケージ関数

Golang の math パッケージには、Round、Ceil、Floor など、浮動小数点数を整数に変換するための関数がいくつか用意されています。これらの関数は、必要に応じて四捨五入、切り上げ、または切り捨てを行うことができます。例:

f := 3.14
i := int(math.Round(f))
j := int(math.Ceil(f))
k := int(math.Floor(f))

この例では、Round 関数を使用して浮動小数点数 3.14 を最も近い整数に四捨五入し、整数値 3 を取得します。Ceil 関数を使用して浮動小数点数 3.14 を切り上げます。整数値 4 を取得する; Floor 関数を使用して浮動小数点数 3.14 を切り捨て、整数値 3 を取得します。

これらの関数はすべて float64 型の値を返すため、キャストを使用して整数に変換する必要があることに注意してください。

  1. strconv パッケージ関数

Golang の strconv パッケージは、文字列型と数値型の間で変換するための関数をいくつか提供します。このうち Atoi 関数と ParseInt 関数は文字列型の数値を整数型に変換できます。例:

s := "123"
i, _ := strconv.Atoi(s)
j, _ := strconv.ParseInt(s, 10, 0)

この例では、Atoi 関数を使用して文字列 "123" を整数型に変換し、整数値 123 を取得します。また、ParseInt 関数を使用して文字列 " を変換することもできます。 123" を整数型に変換します。基数パラメータは 10 (10 進数を意味します)、bitSize パラメータは 0 (整数型が自動的に決定されることを意味します) です。 ParseInt 関数は、文字列を 16 進数、8 進数などの他の基数の整数に変換することもできることに注意してください。

  1. 10 進数制御

浮動小数点数を整数に変換する場合は、精度の問題に注意する必要があります。浮動小数点数はコンピュータに保存されるときは近似値であるため、精度誤差が生じる可能性があります。浮動小数点数を整数に変換する際の誤差が整数部分の桁数を超える場合、結果が不正確になる可能性があります。例:

f := 1.0000000009
i := int(f)

この例では、浮動小数点数 1.0000000009 は Golang では 1.0000000009000001 と表現され、整数に変換すると、2 ではなく 1 の整数値が得られます。これは、精度誤差が整数部の桁数を超えるためです。

この状況を回避するには、小数点以下の桁数を制御することで精度誤差を減らすことができます。例:

f := 1.0000000009
f = math.Round(f*1000000000) / 1000000000
i := int(f)

この例では、小数点以下の桁数を 9 桁以内に制御し、次の math.Round 関数を使用して浮動小数点数 1.0000000009 を最も近い小数点以下の桁に四捨五入して浮動小数点を取得します。 value 1.000000001. そしてそれを整数型に変換し、整数値 1 を取得します。これにより、高い精度を維持しつつ、整数部の桁数を超える精度誤差を回避することができます。

概要

Golang の浮動小数点数を整数に変換する場合、強制型変換、math パッケージ関数、strconv パッケージ関数などを使用できます。精度の問題に注意し、小数点以下の桁数を制御してエラーを減らし、適切なメソッドと関数を選択してコードの可読性とパフォーマンスを向上させる必要があります。

以上がgolang 浮動小数点を整数に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。