Byte-Slice in Float64 in GoLang konvertieren
In GoLang kann es notwendig sein, ein Byte-Slice zu konvertieren, dargestellt als []uint8, in einen float64. Allerdings kann es eine Herausforderung sein, online eine unkomplizierte Lösung zu finden. Der Versuch, das Byte-Slice in eine Zeichenfolge und dann in einen Float64-Wert umzuwandeln, kann zu Datenverlust und falschen Werten führen.
Um dieses Problem zu beheben, bieten binäre Operationen und mathematische Funktionen eine effiziente Methode zum Konvertieren von Byte-Slices in Float64:
package main import ( "encoding/binary" "fmt" "math" ) // Convert []uint8 to float64 func Float64frombytes(bytes []byte) float64 { bits := binary.LittleEndian.Uint64(bytes) float := math.Float64frombits(bits) return float } // Convert float64 to []uint8 func Float64bytes(float float64) []byte { bits := math.Float64bits(float) bytes := make([]byte, 8) binary.LittleEndian.PutUint64(bytes, bits) return bytes } func main() { // Example: Converting math.Pi to byte slice and back to float64 bytes := Float64bytes(math.Pi) fmt.Println(bytes) float := Float64frombytes(bytes) fmt.Println(float) }
Ausgabe:
[24 45 68 84 251 33 9 64] 3.141592653589793
Dieses Code-Snippet zeigt, wie ein Byte-Slice in konvertiert wird ein float64 mit dem Paket Binary.LittleEndian und der Funktion math.Float64frombits. Umgekehrt wird auch gezeigt, wie man mithilfe der Funktionen math.Float64bits und Binary.LittleEndian.PutUint64 einen Float64-Wert zurück in ein Byte-Slice umwandelt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein Byte-Slice in ein Float64 in GoLang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!