2012-08-04 152 views
9

如何在Golang中將big int轉換爲字符串(或整數)?將bigint轉換爲Go中的字符串

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

感謝您的評論PST。經過幾個小時的搜索,我會說在bigint上這個文檔不是很好。例如,我仍然無法弄清楚如何將字符串轉換爲bigint。 – Yster 2012-08-04 23:20:56

回答

19

只需使用String方法:http://golang.org/pkg/math/big/#Int.String

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

感謝您的回答,cyberdelia。我應該提出一個新問題,還是我可以問你如何轉換:從一個字符串到一個bigint? (再次,我無法在任何地方找到答案)。 – Yster 2012-08-04 22:14:54

+3

@Yster - http://golang.org/pkg/math/big/#Int.SetString – BurntSushi5 2012-08-05 01:26:04

+0

@ BurntSushi5 - 非常感謝!例如:bigint.SetString(「123」,10) – Yster 2012-08-05 07:20:37

0

我用下面的:

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

直接調用'bigint.String()'(而不是通過fmt的接口{})更簡單,更高效。爲此使用'fmt'包的唯一原因是如果你想使用特殊的格式。 – 2015-03-20 05:23:12

+0

我在一個非常大的int中使用了bigint.String(),並獲得了類似1.2123423534546e308 – victorsamuelmd 2015-03-20 05:29:24

0

你問如何將BIGINT轉換爲字符串或爲int,接受的答案解釋只有如何轉換爲字符串。

所以,你有你的bigint := big.NewInt(123)


您可以將BIGINT轉換成整數的兩種可能的方式:

  • 使用.Int64()。用yourInt := bigint.Int64()
  • .Uint64()。與yourUint := bigint.Uint64()

兩種方法的原因是,uint擁有兩倍大的數字,有時你知道答案是肯定的。請注意,如果該數大於int64/uint64的最大可能值:

如果x無法在int64中表示,則結果是未定義的。


而對於完整性,轉換爲字符串,只需使用.String()bigstr := bigint.String()