首页 > 其他分享 >.NET教程 - 数值 & 随机数(Number & Random)

.NET教程 - 数值 & 随机数(Number & Random)

时间:2022-09-29 08:11:27浏览次数:55  
标签:BigInteger Console Random Number 实例 WriteLine new NET Math

更新记录
转载请注明出处:
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是一个静态类型
Math静态类型的主要成员总结图:
image

数值舍入

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));

标签:BigInteger,Console,Random,Number,实例,WriteLine,new,NET,Math
From: https://www.cnblogs.com/cqpanda/p/16736850.html

相关文章

  • 聊聊 dotnet 7 对 bool 与字符串互转的底层性能优化
    本文也叫跟着StephenToub大佬学性能优化系列。大家都知道在.NET7有众多的性能优化,其中就包括了对布尔和字符串互转的性能优化。在对布尔和字符串的转换的性能优化上......
  • kubenetes之pod
    创建一个基础的podvimnginx.yamlapiVersion:v1#必选,API的版本号kind:Pod#必选,类型Podmetadata:#必选,元数据name:nginx#必选,符合RFC1035规范的Pod......
  • 509.fibonacci-number 斐波那契数
    题目描述509.fabonacci-number解题思路\(a_n=a_{n-1}+a_{n-2}\),利用这一递推关系构建for循环即可,实际上只需要容量为2的数组。代码classSolution{public:......
  • Python之telnetlib模块
    telnetlib是python标准库中的一员,我们可以使用该模块以telnet的方式与服务器交互。请观察下面示例了解它的用法:importtelnetlibdefrun_telnet(host,username,password,......
  • centos7 中iptables、firewalld 和 netfilter 的关系
    centos7系统使用firewalld服务替代了iptables服务,但是依然可以使用iptables来管理内核的netfilter但其实iptables服务和firewalld服务都不是真正的防火墙,只是用来定......
  • .NET 反向代理 YARP 代理 GRPC
    前面的YARP文档中,介绍了怎么去代理http,和如何根据域名转发,而在现在微服务的应用是越来越来多了,服务间的调用依靠http越来越不现实了,因为http多次握手的耗时越发......
  • NET6 web项目读取 appsettings配置文件
    可以在appsettings中配置数据量连接字符串等数据,便于项目发布后的配置首先,创建ConfigHelper类namespaceTestProject.services{publicclassConfigHelper{......
  • Kubernetes基础配置管理
    一、ConfigMap创建1-1、基于目录创建ConfigMap首先创建一个configmap/conf存储目录,分别建立.conf文件mkdir/configmap/conf#创建。conf文件和添加内容vim......
  • Kubernetes资源调度
    一、无状态应用管理Deployment1-1、创建DeploymentapiVersion:apps/v1kind:Deploymentmetadata:labels:app:nginxname:nginxspec:replicas:5......
  • Kubernetes之Pod详解
    1、Pod生命周期pod创建1.APIServer在接收到创建pod的请求之后,会根据用户提交的参数值来创建一个运行时的pod对象。2.根据APIServer请求的上下文的元数据来验......