2012-08-04 34 views
9

Làm cách nào để chuyển đổi một chuỗi lớn thành một chuỗi (hoặc số nguyên) trong Golang?Chuyển đổi một dấu lớn thành một chuỗi trong Go

bigint := big.NewInt(123) //This is what I have 
bigstr = "123" //This is what I want 
+0

Cảm ơn pst nhận xét. Sau nhiều giờ tìm kiếm, tôi sẽ nói rằng tài liệu không phải là tuyệt vời trên bigints. Ví dụ, tôi vẫn không thể tìm ra cho cuộc sống của tôi làm thế nào để chuyển đổi từ một chuỗi thành một bigint. – Yster

Trả lời

19

Chỉ cần sử dụng String phương pháp: http://golang.org/pkg/math/big/#Int.String

bigint := big.NewInt(123) 
bigstr := bigint.String() 
+0

Cảm ơn câu trả lời, cyberdelia. Tôi có nên đưa ra một câu hỏi mới hay tôi có thể hỏi bạn làm thế nào để chuyển đổi theo cách khác: từ một chuỗi thành một bigint? (Một lần nữa, tôi không thể tìm thấy câu trả lời ở bất cứ đâu). – Yster

+3

@Yster - http://golang.org/pkg/math/big/#Int.SetString – BurntSushi5

+0

@ BurntSushi5 - Cảm ơn bạn rất nhiều! Đó là một chuỗi nhỏ tuyệt vời để big.Int ví dụ: bigint.SetString ("123", 10) – Yster

0

tôi sử dụng như sau:

bigint := big.NewInt(1231231231231) 
bigstr := fmt.Sprint(bigint) 
+1

Gọi 'bigint.String()' trực tiếp (thay vì thông qua giao diện {} của fmt) là đơn giản và hiệu quả hơn. Lý do duy nhất để sử dụng gói 'fmt' cho điều này là nếu bạn muốn sử dụng định dạng đặc biệt. –

+0

Tôi sử dụng bigint.String() trong một int thực sự lớn và thu được một cái gì đó như 1.2123423534546e308 – victorsamuelmd

0

Bạn hỏi làm thế nào để chuyển đổi một bigint để chuỗi hoặc int, câu trả lời chấp nhận giải thích chỉ cách chuyển đổi thành chuỗi.

Vì vậy, bạn có bạn bigint := big.NewInt(123)


Bạn có thể chuyển đổi bigint của bạn để nguyên trong hai cách có thể:

  • sử dụng .Int64(). Với yourInt := bigint.Int64()
  • sử dụng .Uint64(). Với yourUint := bigint.Uint64()

Lý do cho hai phương pháp là uint giữ số lớn hơn 2 lần và đôi khi bạn biết câu trả lời là dương. Lưu ý rằng nếu số lớn hơn số tối đa có thể cho int64/uint64:

Nếu x không thể biểu diễn trong int64, kết quả là không xác định.


Và cho đầy đủ, để chuyển sang chuỗi, chỉ cần sử dụng .String()bigstr := bigint.String()

Các vấn đề liên quan