2010-02-13 89 views
8

我正在寫一個應用程序,涉及與龐大的數字,非常多的數字算術。我以前寫過一個類,它通過將它們定義爲字符串,然後使用慢算術字符串函數來簡化處理大數字。這是做這件事的最好方法嗎?如果不是,我該如何處理這個問題? C#有這種情況下內置的任何東西嗎?C#:我應該如何處理巨大數字的算術?

+0

Int64不夠嗎?你能舉一個你想要執行的算術操作的例子嗎? – Zyphrax 2010-02-13 22:14:20

+1

System.Decimal是否足夠大?可以代表的最大價值是79,228,162,514,264,337,593,543,950,335。 – jjxtra 2010-02-13 22:16:10

+1

「Humongous」實際上並不是一個有用的描述。我們是在談論二十位數,一千位數,一百萬位數,十億位數還是超過十億位數的數字?每個人對你的問題的回答都會有所不同。 – 2010-02-14 17:44:26

回答

6

.NET 4將通過BigInteger類型構建它。據稱這是非常好的調整,應該表現很好。

對於3.5及更早版本,您可以從Dynamic Language Runtime源獲取BigInteger的實現。 (例如,請參閱http://dlr.codeplex.com/sourcecontrol/changeset/view/40021?projectName=dlr#694008並深入到Src/Runtime/Microsoft.Dynamic/Math中。)我不知道這是否與.NET 4 BigInteger類型一樣高度調整,但它應該比字符串版本更高效因爲它內部使用整數類型表示大數,並使用整數運算執行算術。

-1

在dotnet的版本在4.0以上, System.Numerics.BigInteger將幫助你這個問題。

如果您使用上述語法獲得集引用錯誤,然後使用

http://www.dllme.com/dll/files/system_numerics_dll.html添加引用。

希望這會幫助你..!

+0

這已被接受的答案中指出。 – 2012-10-01 13:42:01