从品牌网站建设到网络营销策划,从策略到执行的一站式服务
今天遇到一个要处理XSD中Integer的数值区间的计算的问题,Integer这个类型的值区间理论上是可没有边界的,假设目前的值是1.5E+10000, 这个数字已经达到double和Int64都无法存储了,同时我还要对如此大的数字进行加减运算,后来发现了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
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图