我正在寫一個應用程序,涉及與龐大的數字,非常多的數字算術。我以前寫過一個類,它通過將它們定義爲字符串,然後使用慢算術字符串函數來簡化處理大數字。這是做這件事的最好方法嗎?如果不是,我該如何處理這個問題? C#有這種情況下內置的任何東西嗎?C#:我應該如何處理巨大數字的算術?
回答
.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類型一樣高度調整,但它應該比字符串版本更高效因爲它內部使用整數類型表示大數,並使用整數運算執行算術。
如果你可以在.NET 4上做到這一點,System.Numeric.BigInteger可以提供幫助。如果你使用的是舊版本的.NET,那麼IntX會幫助你。
另請參閱此this SO question關於C#中的大整數。
GNU MP bignum庫是其中最快的。有一個.NET包裝它 http://gnumpnet.codeplex.com/
這是另一個bignum library .NET與源代碼。
我已經多次用於加密項目的大整數類(需要非常大的數字)。很棒。
在dotnet的版本在4.0以上, System.Numerics.BigInteger
將幫助你這個問題。
如果您使用上述語法獲得集引用錯誤,然後使用
http://www.dllme.com/dll/files/system_numerics_dll.html添加引用。
希望這會幫助你..!
這已被接受的答案中指出。 – 2012-10-01 13:42:01
- 1. 處理巨大的數字C,Java,Informix
- 2. 如何處理在C#.NET從Webservice的巨大JSON數據
- 3. 我應該如何處理D中的C字符串?
- 4. 如何處理巨大的表格?
- 5. 如何處理巨大的表格
- 6. 你如何處理巨大的條件?
- 7. 處理巨大的JSON響應
- 8. SubSonic 3.0.0.3 C#我們應該如何處理保留字?
- 9. 處理巨大的位圖
- 10. 我應該如何處理大型數據庫(17MB)?
- 11. GWT中的巨大數據處理
- 12. 當範圍可能太大時,我應該如何處理數字列表框?
- 13. 如何在源代碼中處理巨大的SQL字符串
- 14. 如何正確處理一個巨大的字符串?
- 15. 我應該處理
- 16. 如何獲得精確的整數結果的算術運算在JS中的巨大數字?
- 17. 在C#中,我該如何處理Oracle Float類型?接收錯誤「算術運算導致溢出」
- 18. 如何對C++中的字符串應用算術運算?
- 19. 如何處理來自數據庫的巨大結果集
- 20. 如何處理sapui5表中的巨大數據(> 1000萬)?
- 21. 我應該如何處理軟件包?
- 22. 我應該如何處理Button事件?
- 23. 我應該如何處理sqlite錯誤?
- 24. 我該如何處理這段文字?
- 25. 非常巨大的SQL數據庫:模式應該如何?
- 26. 我應該如何處理c/windows中的windows/linux路徑
- 27. 我應該如何處理C++中的不一致對象?
- 28. 應該如何處理字符串的陣列工作在C
- 29. 舊漏報期技術債務應該如何處理?
- 30. 我應該如何處理可選查詢字符串的值?
Int64不夠嗎?你能舉一個你想要執行的算術操作的例子嗎? – Zyphrax 2010-02-13 22:14:20
System.Decimal是否足夠大?可以代表的最大價值是79,228,162,514,264,337,593,543,950,335。 – jjxtra 2010-02-13 22:16:10
「Humongous」實際上並不是一個有用的描述。我們是在談論二十位數,一千位數,一百萬位數,十億位數還是超過十億位數的數字?每個人對你的問題的回答都會有所不同。 – 2010-02-14 17:44:26