C# BigInteger 处理超大整型数字
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=612
适用于
.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.BigInteger
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
http://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=612
- C# BigInteger 处理超大整型数字
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- 处理大数字BigInteger与BigDecimal
- JAVA中大数字的的处理:BigInteger和BigDecimal
- Java BigInteger 类和BigDecimal类,大数字处理类型
- 处理大数字BigInteger与BigDecimal
- Win8 Metro(C#)数字图像处理--2.42图像光照效果算法
- Win8 Metro(C#)数字图像处理--2.55OSTU法图像二值化
- Win8 Metro(C#)数字图像处理--2.64图像高斯滤波算法
- Win8 Metro(C#)数字图像处理--3.1图像均值计算
- Win8Metro(C#)数字图像处理--2.25二值图像距离变换
- 【原】biginteger。大数乘法。大数运算。“无限大数字”乘法。大数乘法两种方法对比
- C# 存储超大的数字
- JAVA大数处理(BigInteger,BigDecimal)
- Win8 Metro(C#)数字图像处理--2.56简单统计法图像二值化
- C# asp.net中常见的字符串处理函数及数字格式化
- Win8 Metro(C#)数字图像处理--2.60部分彩色保留算法
- BigInteger和BigDecimal--数字运算精度的设置
- 字符串数字转换成整型(不用Integer.valueOf()方法)