在C#中,如何存儲和計算的數字遠遠超過UInt64的最大值(18,446,744,073,709,551,615)?如何處理大於UInt64(C#)的數字
回答
通過使用BigInteger類;在J#庫(絕對可以從C#訪問)中有一個,另一個在F#中(需要測試這個),並且在純C#中有獨立實現such as this one。
十進制有更大的範圍。
在.NET 4.0中支持bigInteger,但仍未達到測試版。
你可以使用.NET 4.0 beta嗎?如果是這樣,你可以使用BigInteger
。否則,如果你堅持在28位數內,你可以使用decimal
- 但要注意顯然這將執行十進制算術,所以你可能需要在各個地方進行四捨五入以補償。
如果有人遇到命名空間問題,它在System.Numerics下; – Adrian 2017-11-25 11:33:38
有幾個使用大整數進行計算的庫,大多數的密碼庫也提供這樣的類。免費圖書館請參見this。
您可以使用decimal。它大於Int64。
它有28到29位有效數字。
什麼是你想使用這些數字?如果你用大數字進行計算,你是否仍然需要精確到最後一位數字? 如果不是,則應考慮使用浮點值。它們可以是巨大的,雙重類型的最大值是1.79769313486231570E + 308,(如果您不習慣科學記數法,則意味着1.79769313486231570乘以10000000 ... 0000 --308個零)。
這應該足夠大,對於大多數應用
令人驚訝的是,沒有人提到過,因爲OP沒有指定整數。 – 2012-07-31 18:57:02
BigInteger表示任意大的有符號整數。
using System.Numerics;
var a = BigInteger.Parse("91389681247993671255432112000000");
var b = new BigInteger(1790322312);
var c = a * b;
- 1. 如何處理大於Double.MAX_VALUE的數字
- 2. Plain C++ /如何乘以大於uint64的整數?
- 3. 如何在java中處理大於BigInteger的大數字?
- 4. 用於處理大數字的語言
- 5. 處理巨大的數字C,Java,Informix
- 6. 如何處理龐大的數字?
- 7. 像FILETIME處理結構如UInt64/Int64
- 8. 如何處理大於8字節或超過20位數字的大整數數據在C++中
- 9. Lua C api:處理大量數字
- 10. Python如何處理大數字?
- 11. Progressbar範圍和位置,如何在C++中處理大數字?
- 12. c# - 處理大量數據
- 13. C++處理大數據
- 14. 如何在C#中處理數字?
- 15. 如何處理大數組?
- 16. 處理C中的數字
- 17. Dask數據框如何處理大於內存的數據集?
- 18. 如何在netty中處理大於1024字節的http請求?
- 19. 如何正確處理Kotlin中大於127的字節值?
- 20. C#uint64 - 存儲數據?
- 21. UINT64串用C
- 22. 如何處理參數c#
- 23. 如何處理在C大投入
- 24. 如何C++處理0 *(大表達式)
- 25. 數據類型用於處理pyspark中的大數字
- 26. 用於處理大型數組的QTimer
- 27. 處理數字小於1
- 28. 在Linqpad C#語句如何處理比較字符串大於(版本> 4.0.38000)
- 29. 如何處理tcl中的大整數(64位)數字?
- 30. (Miller-Rabin)我如何處理大指數的數字?
另外值得注意的是--DLR中還有另一個實現來支持Python和Ruby無限精度整數,但我還沒有看到該類的公共API是什麼。 – 2009-08-23 22:51:45