Math类
是一个静态类,主要为三角函数,对数函数及其他通用数学函数提供常数和静态方法
1)PI
是一个双精度常量的公共字段public const double PI;
2)Abs
用于获取参数的绝对值(结果为非负数)
3)Ceiling
向上取整(返回参数的最小整数)
4)Floor
向下取整(返回参数的最大整数)
5)Round
四舍五入取偶
取偶:就是看上一位,如果是偶数,小数位为 5 就舍弃;若为奇数,小数位为 5 就进 1
如 Math.Round(74.5)=74;
static void Main(string[] args)
{
Console.WriteLine("公共的常量字段 ");
Console.WriteLine(Math.PI);
Console.WriteLine("获取参数的绝对值");
Console.WriteLine(Math.Abs(-9));
Console.WriteLine(Math.Abs(0));
Console.WriteLine(Math.Abs(9));
Console.WriteLine("向上取整");
Console.WriteLine(Math.Ceiling(9.0001));
Console.WriteLine(Math.Ceiling(9.9m));
Console.WriteLine("向下取整");
Console.WriteLine(Math.Floor(9.1));
Console.WriteLine(Math.Floor(9.9));
Console.WriteLine("四舍五入");
Console.WriteLine(Math.Round(9.8));
Console.WriteLine(Math.Round(9.1));
Console.ReadKey();
//其他静态方法及其重载方法自己测试
}
Random
是一个非静态类,需要使用new声明一个实例,用于产生非负int类型的伪随机数
声明的语法格式
//声明一个实例
Random 实例名 = new Random();
Random rm = new Random();
//调用方法
rm.方法名();
1 Next() 此方法有3个最常用重载方法
1)用于产生一个非负int类型范围内的数字
2)Next(int Max)产生一个不大于Max的非负int类型的数字
3)Next(int Min,int Max)产生一个在最小值(Min)与最大值(Max)之间的非负int类型的数字
取值范围包含Min但不包含Max,如果Min=Max则返回Min
2 NextDouble() 产生一个0.0-1.0之间的小数
//声明Random类的一个实例
Random rm = new Random();
//产生随机小数
for (int i = 0; i < 10; i++)
{
Console.WriteLine(rm.NextDouble());
}
//参数随机整数
while (true)
{
Console.WriteLine("随机产生int范围内的正整数 {0}",rm.Next());
Console.WriteLine("随机产生不大于99的正整数 {0}", rm.Next(99));
Console.WriteLine("随机产生0-9之间的正整数 {0}", rm.Next(0, 9));
Console.ReadKey();
}
示例:给定一个int类型数组,随机生成一些该数组长度的数字,要求数字不能重复并且范围在0-99之间,将产生的数字赋值给数组的各个元素
//产生数组长度不重复值的方法
/// <summary>
/// 获取不重复的数字
/// </summary>
/// <param name="arr">传入数组,获取数组长度</param>
/// <param name="min">最小值</param>
/// <param name="max">最大值</param>
/// <returns>返回具有不重复值的数组</returns>
static int[] IsRepeatNum(int[] arr, int min, int max)
{
Random rm = new Random();
int num = 0;
for (int i = 0; i < arr.Length; i++)
{
num = rm.Next(0, 99);
//如果产生的随机数
//包含在数组中就会一直循环
while (arr.Contains(num))
{
num = rm.Next(min, max);
}
//如果产生的随机数不在数组中
//将随机数赋值给当前元素
arr[i] = num;
}
//暂时使用有返回值方式
return arr;
}
//=====调用方法==============
static void Main(string[] args)
{
while (true)
{
int[] arr = new int[10];
int min = 0, max = 99;
arr= IsRepeatNum(arr, min, max);
Console.WriteLine("循环输出数组的值");
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("{0} ", arr[i]);
}
Console.WriteLine("");
Console.ReadKey();
}
}