GoLang에서 바이트 슬라이스를 Float64로 변환
GoLang에서는 []uint8로 표시되는 바이트 슬라이스를 변환해야 할 수도 있습니다. float64로. 그러나 온라인에서 간단한 솔루션을 찾는 것은 어려울 수 있습니다. 바이트 슬라이스를 문자열로 변환한 다음 float64로 변환하려고 하면 데이터가 손실되고 잘못된 값이 발생할 수 있습니다.
이 문제를 해결하기 위해 이진 연산 및 수학 함수는 바이트 슬라이스를 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) }
출력:
[24 45 68 84 251 33 9 64] 3.141592653589793
이 코드 조각은 Binary.LittleEndian 패키지와 math.Float64frombits 함수를 사용하여 바이트 슬라이스를 float64로 변환합니다. 반대로, math.Float64bits 및 binary.LittleEndian.PutUint64 함수를 사용하여 float64를 다시 바이트 슬라이스로 변환하는 방법도 보여줍니다.
위 내용은 GoLang에서 바이트 슬라이스를 Float64로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!