Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Rentetan Heksadesimal Lebih Besar Daripada Jenis Integer Terbina Dalam Go?
Menukar rentetan perenambelasan kepada nombor perpuluhan boleh menjadi satu cabaran apabila berurusan dengan nombor yang melebihi kapasiti jenis integer terbina dalam . Golang menyediakan penyelesaian yang berkuasa dengan pakej matematik/besarnya.
Untuk menukar rentetan perenambelasan menjadi besar.Int, gunakan kaedah SetIntString.
package main import "math/big" func main() { // Example hexadecimal string hexString := "0x00000000000000000000000000000000000000000000d3c21bcecceda1000000" // Create a new big.Int i := new(big.Int) // Convert the hexadecimal string to a big.Int i.SetString(hexString, 16) // Print the converted number println(i) }
Selepas menukar rentetan perenambelasan kepada besar.Int, anda boleh memotong perwakilan perpuluhan dengan menggunakan kaedah Truncate. Contohnya:
func Truncate(x *big.Int, prec uint) { f := new(big.Float).SetInt(x) f.SetPrec(int64(prec)) f.Int(x) }
Fungsi ini menetapkan ketepatan besar. Terapung ke bilangan tempat perpuluhan yang diingini sebelum menukarnya semula kepada besar.Int.
Anda boleh menggunakan pakej fmt untuk menghuraikan dan memformat besar. Nilai Int:
package main import "fmt" func main() { hexString := "0x000000d3c21bcecceda1000000" // Create a new big.Int i := new(big.Int) // Parse the hexadecimal string fmt.Sscan(hexString, i) // Alternatively, you can use fmt.Sscanf // fmt.Sscanf(hexString, "0x%x", i) // Truncate to 18 decimal places Truncate(i, 18) // Marshal to JSON jsonBytes, _ := i.MarshalJSON() fmt.Println(string(jsonBytes)) }
Atas ialah kandungan terperinci Bagaimana Mengendalikan Rentetan Heksadesimal Lebih Besar Daripada Jenis Integer Terbina Dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!