2012-08-04 39 views
9

Golangでビッグintを文字列(または整数)に変換するにはどうすればよいですか?BigintをGoの文字列に変換する

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

おかげを使用し、文字列に変換します。数時間の検索の後、私はbigintsでドキュメントが素晴らしいとは言えません。例えば、私はまだ私の人生のために文字列からbigintに変換する方法を理解することができませんでした。 – Yster

答えて

19

だけStringメソッドを使用します。http://golang.org/pkg/math/big/#Int.String

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

答え、サイバーデリアをありがとう。私は新しい質問をするべきですか、または逆の方法を変える方法をあなたに尋ねることができますか?文字列からbigintへ? (再び、私はどこでも答えを見つけることができませんでした)。 – Yster

+3

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

+0

@ BurntSushi5 - ありがとう!例:bigint.SetString( "123"、10) – Yster

0

を私は次のように使用:

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

(bigint.String()をfmtのインタフェース{}の代わりに)直接呼び出す方が簡単で効率的です。 'fmt'パッケージを使用する唯一の理由は、特殊な書式を使用したい場合です。 –

+0

私はbigint.String()を本当に大きなintで使用し、1.2123423534546e308のようなものを得ました – victorsamuelmd

0

あなたは受け入れ答えは説明して、文字列にBIGINTを変換するか、int型にする方法尋ね文字列に変換する方法のみ。

だから、あなたは2つの方法で整数にあなたのBIGINTに変換することができ、あなたのbigint := big.NewInt(123)


を持っている:.Int64()を使用して

  • yourInt := bigint.Int64()
  • を使用すると、.Uint64()を使用します。 yourUint := bigint.Uint64()

2つの方法の理由は、uintが2倍の大きさの数字を保持し、その答えが肯定的であることがわかっていることがあります。数値がint64/uint64で可能な最大値より大きい場合は、注意してください。

xをint64で表現できない場合、結果は不定です。


万全を期すために、ちょうどコメントPSTのための.String()bigstr := bigint.String()

関連する問題