Heim  >  Artikel  >  Backend-Entwicklung  >  golang float转string

golang float转string

WBOY
WBOYOriginal
2023-05-10 20:38:353127Durchsuche

Go-Sprache ist eine relativ junge Programmiersprache. Aufgrund ihrer Einfachheit, Effizienz und Sicherheit erfreut sie sich bei Programmierern zunehmender Beliebtheit und wird häufig in Webanwendungen, Netzwerkprogrammierung, Cloud Computing, Big Data und anderen Bereichen verwendet. In der Go-Sprache werden Daten vom Typ Float häufig zur Darstellung von Dezimalzahlen und Gleitkommawerten verwendet. Wenn wir Daten vom Float-Typ in den String-Typ konvertieren müssen, müssen wir einige verwandte Funktionen verwenden.

  1. Die Funktion Float64Tostring im Paket strconv
    In der Go-Sprache können Sie die Funktion „FormatFloat“ des Pakets „strconv“ verwenden, um eine reelle 64-Bit-Gleitkommazahl in eine Zeichenfolge umzuwandeln, und Sie können auch die angeben Konvertierungsformat, wie z. B. Beibehaltung von n Nachkommastellen, Exponentialschreibweise usw.

Funktionssignatur: func FormatFloat(f float64, fmt byte, prec, bitSize int) string

Unter diesen ist der Parameter f die zu konvertierende Gleitkommazahl, fmt repräsentiert das Konvertierungsformat und 'f' repräsentiert die Dezimaldarstellung , 'e' stellt die wissenschaftliche Notation dar, 'E' stellt die wissenschaftliche Notation dar, prec stellt die Genauigkeit nach dem Dezimalpunkt dar und bitSize repräsentiert die Anzahl der Ziffern im numerischen Typ (32 oder 64 Bit).

Beispielcode:

package main

import „fmt“
import „strconv“

func main() {

num := 3.141592654
str := strconv.FormatFloat(num, 'f', 2, 64)
fmt.Println("转换后的字符串为:", str)

}

Ausgabe:

Die konvertierte Zeichenfolge lautet: 3.14

In diesem Beispiel. , wir Wandeln Sie die Gleitkommazahl 3.141592654 in einen String mit einer Genauigkeit von 2 um und geben Sie das Ergebnis aus. Das Ausgabeergebnis beträgt zu diesem Zeitpunkt 3,14.

  1. Verwenden Sie die Funktion fmt.Sprintf direkt.
    Beim Schreiben von Code können wir auch die Funktion fmt.Sprintf verwenden, um einen Float-Typ in einen String-Typ zu konvertieren. Der Platzhalter %f wird in der Formatzeichenfolge dieser Funktion verwendet, um die Ausgabe von Daten vom Typ Float darzustellen.

Beispielcode:

package main

import „fmt“

func main() {

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

}

Ausgabe:

1.618034

In diesem Beispiel werden wir 1.6180 3398875 Verwenden Sie fmt für Gleitkommazahlen. Die Sprintf-Funktion konvertiert in den String-Typ und gibt das Ergebnis aus. Das Ergebnis ist dasselbe wie das Standardformat für float64-Werte.

  1. strconv.FormatFloat() wird in Kombination mit strconv.AppendFloat() verwendet
    Wenn Sie den Typ float64 in einen String-Typ konvertieren müssen, müssen Sie die Speicherung des Strings berücksichtigen, um die Verarbeitungsgeschwindigkeit zu verbessern Für die Zeichenfolge können Sie strconv verwenden. AppendFloat() vermeidet einige Vorgänge zum Kopieren und Anhängen von Zeichenfolgen. Hier ist etwas Verständnis erforderlich:

Der zurückgegebene []Byte-Typ wird als nächste ausfüllbare Position von w verwendet. Um eine Speicherzuweisung zu vermeiden, rufen Sie w.Grow(n) im Voraus auf, wobei n die Gesamtzahl der zu schreibenden Bytes oder die maximale Zahlenbreite + 1 ist (d. h. die Kombination aus der Gesamtzahlbreite mit guter Ausrichtung und dem Hinzufügen eines Dezimalpunkts). )

w ist eine Instanz, die io.Writer implementiert. Die Zeichenfolgendarstellung von

fn basiert auf dem Format fmt mit einer genauen Anzahl an Dezimalstellen (-1 bedeutet, dass die wenigsten Ziffern verwendet werden). Insbesondere die folgenden Formatdeskriptoren %v und %e führen hier beide zu einer wissenschaftlichen Notation. Die kleinste Zahl, die durch eine Gleitkommakonstante garantiert umkehrbar ist, kann mit Float32bits (-1<<31) und Float64bits (-1<<63) ermittelt werden.

Das nicht numerische Verhalten von f-Werten ist genau das gleiche wie bei fmt.Fprintf.

Beispielcode:

package main

import "strconv"

func main() {

num := 3.141592653
b := make([]byte, 0, 64)
b = strconv.AppendFloat(b, num, 'f', -1, 64)

}

In diesem Beispiel konvertieren wir die Gleitkommazahl 3.141592653 in einen String-Typ und speichern ihn in b[] Variable vom Typ Byte. Es ist zu beachten, dass die Anzahl der Dezimalstellen zu diesem Zeitpunkt -1 beträgt, dh die minimale Anzahl von Ziffern wird zur Darstellung des Werts verwendet.

Wenn Sie den Float-to-String-Algorithmus genau steuern möchten, können Sie sich über die Golang-Standardbibliothek math/big informieren.

Zusammenfassung:
In der Go-Sprache gibt es drei Hauptmethoden zum Konvertieren von Daten vom Typ Float in Daten vom Typ String: Verwenden der Funktion fmt.FormatFloat im Paket strconv, Verwenden der Funktion fmt.Sprintf und Verwenden von strconv.FormatFloat() und strconv. AppendFloat() wird in Kombination verwendet. Sie können die Formatierung mithilfe der Funktionen im Paket strconv anpassen. Die Verwendung der Funktion fmt.Sprintf ist praktisch und einfach. Die Kombination von strconv.FormatFloat() und strconv.AppendFloat() kann das Kopieren und Anhängen von Zeichenfolgen reduzieren Verarbeitungsgeschwindigkeit. Es ist zu beachten, dass bei der Präzisionsberechnung und -verwendung darauf geachtet werden sollte, Fehler durch die Konvertierung von Gleitkommazahlen zu vermeiden, insbesondere bei Gleitkommazahlen mit einem größeren Bereich.

Das obige ist der detaillierte Inhalt vongolang float转string. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn