示例如下:
using System;
using System.Text;
public class My
{
static void Main()
{
double m=13.45;
double n=-13.99;
Console.WriteLine("Floor:{0}",Math.Floor(m));
Console.WriteLine("Floor:{0}",Math.Floor(n));
Console.WriteLine("Ceiling:{0}",Math.Ceiling(m));
Console.WriteLine("Ceiling:{0}",Math.Ceiling(n));
Console.WriteLine("Round:{0}",Math.Round(n));
Console.WriteLine("Truncate:{0}",Math.Truncate(m));
Console.WriteLine("Max:{0}",Math.Max(n,m));
int x=2,y=3;
Console.WriteLine("Max:{0}",Math.Pow(x,y));
Console.WriteLine("Sqrt:{0,2:F}",Math.Sqrt(x));
}
}
运行结果:
Floor:13
Floor:-14
Ceiling:14
Ceiling:-13
Round:-14
Truncate:13
Max:13.45
Max:8
Sqrt:1.41
这里特别要注意Floor和Ceiling方法,Ceiling俗称“天花板”方法,结果是比该数大且最近的那个整数;Floor俗称“地板”方法,取比该数小且最近的那个整数。
日期类型
C#中表示日期的类型是DateTime,要注意这是一个结构类型,是值类型。DateTime常用来操纵日期和时间各组成部分。通常,我们直接使用该类的静态属性即可获得当天的实时日期,如:
public class My
{
static void Main()
{
DateTime dt=DateTime.Now;
Console.WriteLine(DateTime.Now);
Console.WriteLine(DateTime.Today);
Console.WriteLine(DateTime.UtcNow);
}
}
运行结果:
2007-11-21 23:39:49
2007-11-21 0:00:00
2007-11-21 15:39:49
要注意,这三个静态属性都是返回DateTime类型的时间对象,下面是一个更复杂的操作日期的例子,基本上用到了日期操作的所有常用方法:
using System;
using System.Text;
public class My
{
static void Main()
{
DateTime dt=DateTime.Now;
int year,month,day,hour,minute,second;
year=dt.Year;month=dt.Month;day=dt.Day;
hour=dt.Hour;minute=dt.Minute;second=dt.Second;
Console.WriteLine("{0}年{1}月{2}日{3}时{4}分{5}秒",year,month,day,hour,minute,second);
Console.WriteLine("今天是{0},本星期的第{1}天",dt.DayOfWeek,(int)dt.DayOfWeek);
Console.WriteLine("今天是本年中的第{0}天",dt.DayOfYear);
//添加一个1天1小时1分钟外加1秒的时间段
dt=dt.Add(new TimeSpan(1,1,1,1));
//添加一天
dt=dt.AddDays(1);
dt=dt.AddHours(1);
Console.WriteLine(dt.ToString());
Console.WriteLine("现在日期{0}",dt.ToShortDateString());
Console.WriteLine("现在时间{0}",dt.ToShortTimeString());
}
}
运行结果:
2007年11月22日0时0分40秒
今天是Thursday,本星期的第4天
今天是本年中的第326天
2007-11-24 2:01:41
现在日期2007-11-24
现在时间2:01
上例中DayOfWeek是一个枚举,你可以通过它获得当前日期星期几的名称,也可以通过它获得当前日期是该星期中的第几天,DayOfYear同样也有此用法。要注意这里还出现了一个TimeSpan类,该类用来表示一个时间段,在上面我们新建了这个时间段,然后将其加入到当前日期中;TimeSpan有多种构造方法,分别可以构造基于秒、小时、天、年的时间段。除此之外,要注意日期类提供的几个版本的ToString方法,使用这些方法你可以获得指定时间对应的字符串。
随机数类
随机数用处很大,你可以利用随机数做很多有用的功能。C#中产生随机数的类是Random,它是一个随机数生成器,能够产生满足某些随机性统计要求的数字序列。Random有两种方法,一种是可以产生整数随机数的Next方法,一种是能够产生浮点型随机数的NextDouble方法。和Java里面的随机数生成器一样,Random也可以设置随机数产生的种子。
示例:
using System;
using System.Text;
public class My
{
static void Main()
{
//使用与时间相关的默认种子值
Random r=new Random();
//产生3个随机正整数
for(int j=0;j<3;j++)
Console.Write("{0}",r.Next());
Console.WriteLine();
//产生5个不大于5的随机正整数
for(int j=0;j<5;j++)
Console.Write("{0}",r.Next(5));
Console.WriteLine();
//产生5个5到10之间的随机正整数
for(int j=0;j<5;j++)
Console.Write("{0}",r.Next(5,10));
Console.WriteLine();
//产生5个介于0.0和1.0之间的随机数
for(int j=0;j<5;j++)
Console.Write("{0,3:F}",r.NextDouble());
Console.WriteLine();
//使用指定的种子值初始化Random实例
Random r2=new Random(15);
//产生3个随机正整数
for(int j=0;j<3;j++)
Console.Write("{0}",r2.Next());
Console.WriteLine();
}
}
运行结果:
460366659 1949472399 384965818
4 0 3 0 0
8 9 6 6 5
0.30 0.48 0.91 0.56 0.98
1208223655 469449854 542975234