Go 言語は比較的新しいプログラミング言語です。そのシンプルさ、効率性、セキュリティのため、プログラマーの間でますます人気があり、Web アプリケーション、ネットワーク プログラミング、クラウド コンピューティング、ビッグ データなどの分野で広く使用されています。 Go 言語では、小数点や浮動小数点値を表すために float 型データがよく使用されます。 float 型のデータを string 型に変換する必要がある場合、いくつかの関連関数を使用する必要があります。
関数シグネチャ: func FormatFloat(f float64, fmt byte, prec, bitSize int) string
このうち、パラメータ f は変換対象の浮動小数点数、fmtは変換形式を表し、' f' は 10 進数表現を表し、'e' は科学表記法を表し、'E' は科学表記法を表し、prec は小数点以下の精度を表し、bitSize は数値型の桁数 (32 または 64) を表します。ビット)。
サンプルコード:
package main
import "fmt"
import "strconv"
func main() {
num := 3.141592654 str := strconv.FormatFloat(num, 'f', 2, 64) fmt.Println("转换后的字符串为:", str)
}
出力:
変換された文字列: 3.14
この例では、浮動小数点数 3.141592654 を文字列精度 2 の文字に変換します。結果を出力します。このときの出力結果は3.14です。
サンプルコード:
package main
import "fmt"
func main() {
num := 1.61803398875 str := fmt.Sprintf("%f", num) fmt.Println(str)
}
出力:
1.618034
この例では、fmt.Sprintf 関数を使用して浮動小数点数 1.61803398875 を文字列型に変換し、結果を出力します。結果は、float64 値のデフォルト形式と同じになります。
返された []byte タイプは、w の次の入力可能な位置として使用されます。メモリ割り当てを回避するには、事前に w.Grow(n) を呼び出します。ここで、n は書き込む合計バイト数または最大数値幅 1 (つまり、適切な位置合わせと小数点の追加による合計数値幅の組み合わせ) です。
w は io.Writer を実装するインスタンスです。
fn の文字列表現は、小数点以下の桁数を正確に指定した fmt 形式に基づいています (-1 は、使用する桁数が最も少ないことを意味します)。特に、次の形式記述子 %v と %e はどちらも科学表記になります。浮動小数点定数によって可逆性が保証されている最小数は、Float32 ビット (-1
f 値の非数値の動作は、fmt.Fprintf とまったく同じです。
サンプルコード:
package main
import "strconv"
func main() {
num := 3.141592653 b := make([]byte, 0, 64) b = strconv.AppendFloat(b, num, 'f', -1, 64)
}
この例では、浮動小数点数3.141592653を文字列型に変換し、[]byte型変数bに格納しています。なお、このときの小数点以下の桁数は-1、つまり最小桁数で値を表現します。
float から string へのアルゴリズムを正確に制御したい場合は、Golang 標準ライブラリ math/big について学ぶことができます。
概要:
Go 言語では、float 型データを string 型データに変換する主な方法が 3 つあります。strconv パッケージの fmt.FormatFloat 関数を使用する方法、fmt.Sprintf 関数を使用する方法、およびFormatFloat() は strconv.AppendFloat() と組み合わせて使用されます。 strconv パッケージの関数を使用して書式設定をカスタマイズできます。fmt.Sprintf 関数を使用すると便利で簡単です。strconv.FormatFloat() と strconv.AppendFloat() を組み合わせると、文字列のコピーと追加の操作が減り、文字列の表示が改善されます処理速度。精度の計算および使用中は、浮動小数点数の変換、特に範囲が広い浮動小数点数の変換によって引き起こされるエラーを避けるように注意する必要があることに注意してください。
以上がgolang 浮動小数点数を文字列に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。