Menukar Slice Byte kepada Float64 dalam GoLang
Dalam GoLang, mungkin perlu menukar kepingan bait, yang diwakili sebagai []uint8, ke dalam apungan64. Walau bagaimanapun, mencari penyelesaian yang mudah dalam talian boleh menjadi mencabar. Percubaan untuk menukar kepingan bait kepada rentetan dan kemudian kepada float64 boleh mengakibatkan kehilangan data dan nilai yang salah.
Untuk menangani isu ini, operasi binari dan fungsi matematik menyediakan kaedah yang cekap untuk menukar kepingan bait kepada 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) }
Output:
[24 45 68 84 251 33 9 64] 3.141592653589793
Kod ini coretan menunjukkan cara menukar kepingan bait kepada float64 menggunakan pakej binari.LittleEndian dan fungsi matematik.Float64frombits. Sebaliknya, ia juga menunjukkan cara untuk menukar float64 kembali kepada kepingan bait menggunakan fungsi matematik.Float64bits dan binari.LittleEndian.PutUint64.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Slice Byte kepada Float64 dalam GoLang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!