GPS平臺、網站建設、軟件開發、系統運維,找森大網絡科技!
http://cnsendnet.taobao.com
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=612php
適用於
.NET Core
3.0 Preview 2 2.2 2.1 2.0 1.1 1.0
.NET Framework
4.8 4.7.2 4.7.1 4.7 4.6.2 4.6.1 4.6網絡
今天遇到一個要處理XSD中Integer的數值區間的計算的問題,Integer這個類型的值區間理論上是可沒有邊界的,假設目前的值是1.5E+10000, 這個數字已經達到double和Int64都沒法存儲了,同時我還要對如此大的數字進行加減運算,後來發現了BigInteger這個類能夠很好的解決我遇到的問題。^_^
BigInteger
自.net framework 4.0開始引入, 位於命名空間:
namespace System.Numerics
設計用於存儲超大整型數字,因此只要內存夠大,存儲是沒有上限和下限的,不然若是數字過大的話,會遇到OutOfMemory的異常。
個人案例
由於個人輸入就是一個字符串的數字,因此我調用BigInteger.Parse()方法能夠獲得一個BigInteger實例,而後就能夠對於進行+1 或者 -1的運算了
static void Main(string[] args)
{運維
String largeNum = "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; var number = BigInteger.Parse(largeNum); var numberDecreaseOne = number - 1; var numberIncreaseOne = number + 1; Console.WriteLine(numberDecreaseOne); Console.WriteLine(" "); Console.WriteLine(numberIncreaseOne); Console.ReadKey(); }
輸出結果:
BigInteger還很不少的方法:好比 Min, Max, Substract, Multiply, Divide, Log, Pow, 等等,同時BigInteger對大量的運算符都進行了重載,很方便使用。
更多資料能夠參看MSDN System.Numerics.BigIntegeride
GPS平臺、網站建設、軟件開發、系統運維,找森大網絡科技!
http://cnsendnet.taobao.com
來自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=612網站