.NET教程 - 数值 & 随机数(Number & Random)
更新记录
转载请注明出处:
2022年9月29日 发布。
2022年9月28日 从笔记迁移到博客。
System.Numerics.BigInteger
BigInteger说明#
BigInteger类型用于表示任意大的整数数值,而不会丢失精度
BigInteger类型定义在System.BigInterger.dll中的System.Numerics命名空间下
所在命名空间
using System.Numerics;
BigInteger定义#
普通整数转为BigInterger类型#
BigInteger bigInteger = 123;
使用BigInterger预定义常量#
BigInteger bigInteger1 = BigInteger.Zero;
BigInteger bigInteger2 = BigInteger.MinusOne; //-1
BigInteger bigInteger3 = BigInteger.One; //1
使用BigInterger预定义方法#
BigInteger bigInteger1 = BigInteger.Parse("10000000000000000000");
使用构造函数#
BigInteger bigInteger = new BigInteger(123M);
数值类型与BigInteger相互转换#
直接从整数类型隐式转换为BigInterger
实例:
BigInteger twentyFive = 25; // implicit conversion from integer
从BigInteger转为数值类型,需要使用显式转换
实例:显式从BigInteger转为数值类型
double g2 = (double) googol; // Explicit cast
BigInteger g3 = (BigInteger) g2; // Explicit cast
Console.WriteLine (g3);
实例:
BigInteger bigInteger = new BigInteger(123);
decimal value = (decimal)bigInteger;
字符串类型与BigInteger相互转换#
实例:
BigInteger googol = BigInteger.Parse ("1".PadRight (101, '0'));
Console.WriteLine (googol.ToString()); // 10000000000000000000000000000
//00000000000000000000000000000000000000000000000000000000000000000000000
实例:从byte数组创建BigInteger
RandomNumberGenerator rand = RandomNumberGenerator.Create();
byte[] bytes = new byte[32];
rand.GetBytes(bytes);
var bigRandomNumber = new BigInteger(bytes); // Convert to BigInteger
BigInteger运算符重载#
BigInteger已经运算符重载了支持常见的算数运算符
实例:
BigInteger bigInteger1 = BigInteger.Parse("6666666666666666666666666");
BigInteger bigInteger2 = BigInteger.Parse("6666666666666666666666666");
BigInteger result1 = bigInteger1 + bigInteger2;
BigInteger result2 = bigInteger1 - bigInteger2;
BigInteger result3 = bigInteger1 * bigInteger2;
BigInteger result4 = bigInteger1 / bigInteger2;
BigInteger result5 = bigInteger1 % bigInteger2;
Console.WriteLine(result1); //13333333333333333333333332
Console.WriteLine(result2); //0
Console.WriteLine(result3); //44444444444444444444444435555555555555555555555556
Console.WriteLine(result4); //1
Console.WriteLine(result5); //0
实例:
BigInteger googol = BigInteger.Pow (10, 100);
BigInteger bigInteger1 = BigInteger.One;
BigInteger bigInteger2 = BigInteger.Parse("123123");
BigInteger bigInteger3 = bigInteger1 + bigInteger2;
静态成员#
获得最大值
BigInteger.Max();
System.Numrics.Complex
说明:表示数学中的复数
注意:定义在System.Numrics程序集中,使用需要添加该引用
注意:使用需要引入命名空间using System.Numrics;
实例:创建复数
var c1 = new Complex (2, 3.5);
var c2 = new Complex (3, 0);
Console.WriteLine (c1.Real); // 2
Console.WriteLine (c1.Imaginary); // 3.5
Console.WriteLine (c1.Phase); // 1.05165021254837
Console.WriteLine (c1.Magnitude); // 4.03112887414927
实例:从极坐标转换
Complex c3 = Complex.FromPolarCoordinates (1.3, 5);
实例:算数运算
var c1 = new Complex (2, 3.5);
var c2 = new Complex (3, 0);
Console.WriteLine (c1 + c2); // (5, 3.5)
Console.WriteLine (c1 * c2); // (6, 10.5)
实例:
Complex someComplex = new Complex(1,2); //实例化复数
Console.WriteLine(someComplex.Real); //获得实部
Console.WriteLine(someComplex.Imaginary); //获得虚部
Complex someComplex2 = new Complex(3, 4); //实例化第二个复数
Complex someComplex3 = someComplex + someComplex2; //第三个复数
Console.WriteLine(someComplex3.Real);
Console.WriteLine(someComplex3.Imaginary);
System.Math
Math说明#
数值舍入#
Math.Round
Math.Truncate
Math.Floor
Math.Ceiling
最大最小#
Math.Max
Math.Min
绝对值和符号#
Math.Abs
Math.Sign
平方根#
Math.Sqrt
幂运算#
Math.Pow
Math.Exp
对数运算#
Math.Log
Math.Log10
三角函数#
Math.Sin
Math.Cos
Math.Tan
Math.Sinh
Math.Cosh
Math.Tanh
Math.Asin
Math.Acos
Math.Atan
System.Random
实例:从0到99(不包括100)
Random random = new Random();
int result1 = random.Next(100);
Console.WriteLine(result1);
实例:从10到99(不包括100)
Random random = new Random();
int result2 = random.Next(10, 100);
Console.WriteLine(result2);
实例:生成0~1之间的数值(不包括1)
Random random = new Random();
double result3 = random.NextDouble();
Console.WriteLine(result3);
数值进制转换
十进制转为其他进制#
//十进制转为二进制
Console.WriteLine(Convert.ToString(12, 2));
//十进制转为八进制
Console.WriteLine(Convert.ToString(12, 8));
//十进制转为十六进制
Console.WriteLine(Convert.ToString(12, 16));
Console.WriteLine(12.ToString("x"));
Console.WriteLine(12.ToString("X"));
其他进制转为十进制#
//二进制转为十进制
Console.WriteLine(Convert.ToInt32("1010",2));
//八进制转为十进制
Console.WriteLine(Convert.ToInt32("17",8));
//十六进制转为十进制
Console.WriteLine(Convert.ToInt32("A", 16));
作者:重庆熊猫
出处:https://www.cnblogs.com/cqpanda/p/16736850.html
版权:本作品采用「不论是否商业使用都不允许转载,否则按3元1字进行收取费用」许可协议进行许可。
本文来自博客园,作者:重庆熊猫,转载请注明原文链接:https://www.cnblogs.com/cqpanda/p/16736850.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构