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

golang 浮動小数点数を文字列に変換

WBOY
WBOYオリジナル
2023-05-10 20:38:353193ブラウズ

Go 言語は比較的新しいプログラミング言語です。そのシンプルさ、効率性、セキュリティのため、プログラマーの間でますます人気があり、Web アプリケーション、ネットワーク プログラミング、クラウド コンピューティング、ビッグ データなどの分野で広く使用されています。 Go 言語では、小数点や浮動小数点値を表すために float 型データがよく使用されます。 float 型のデータを string 型に変換する必要がある場合、いくつかの関連関数を使用する必要があります。

  1. strconv パッケージの関数 Float64Tostring
    Go 言語では、「strconv」パッケージの「FormatFloat」関数を使用して、64 ビット浮動小数点実数を文字列に変換できます。 、小数点以下n桁保持、指数表記などの変換形式も指定できます。

関数シグネチャ: 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です。

  1. fmt.Sprintf 関数を直接使用する
    コードを記述するときに、fmt.Sprintf 関数を使用して float 型を string 型に変換することもできます。 %f プレースホルダーは、float 型データの出力を表すために、この関数のフォーマット文字列で使用されます。

サンプルコード:

package main

import "fmt"

func main() {

num := 1.61803398875
str := fmt.Sprintf("%f", num)
fmt.Println(str)

}

出力:

1.618034

この例では、fmt.Sprintf 関数を使用して浮動小数点数 1.61803398875 を文字列型に変換し、結果を出力します。結果は、float64 値のデフォルト形式と同じになります。

  1. strconv.FormatFloat() は strconv.AppendFloat() と組み合わせて使用​​されます
    float64 型を文字列型に変換する必要がある場合は、文字列のストレージを考慮する必要があります。文字を改善するには 文字列の処理速度を向上するには、strconv.AppendFloat() を使用して、一部の文字列のコピーおよび追加操作を回避できます。ここである程度の理解が必要です:

返された []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 サイトの他の関連記事を参照してください。

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