System.Math 类

方法描述

为三角函数、对数函数和其他通用数学函数提供常数和静态方法。

语法定义(C# System.Math 类 的用法)

public static class Math

构造函数

构造函数名称 构造函数描述

成员/方法

方法名称 方法描述
Abs(Decimal) 返回 Decimal 数字的绝对值。
Abs(Double) 返回双精度浮点数字的绝对值。
Abs(Int16) 返回 16 位有符号整数的绝对值。
Abs(Int32) 返回 32 位有符号整数的绝对值。
Abs(Int64) 返回 64 位有符号整数的绝对值。
Abs(SByte) 返回 8 位有符号整数的绝对值。
Abs(Single) 返回单精度浮点数字的绝对值。
Acos 返回余弦值为指定数字的角度。
Asin 返回正弦值为指定数字的角度。
Atan 返回正切值为指定数字的角度。
Atan2 返回正切值为两个指定数字的商的角度。
BigMul 生成两个 32 位数字的完整乘积。
Ceiling(Decimal) 返回大于或等于指定的十进制数的最小整数值。
Ceiling(Double) 返回大于或等于指定的双精度浮点数的最小整数值。
Cos 返回指定角度的余弦值。
Cosh 返回指定角度的双曲余弦值。
DivRem(Int32, Int32, Int32) 计算两个 32 位有符号整数的商,并通过输出参数返回余数。
DivRem(Int64, Int64, Int64) 计算两个 64 位有符号整数的商,并通过输出参数返回余数。
Exp 返回 e 的指定次幂。
Floor(Decimal) 返回小于或等于指定小数的最大整数。
Floor(Double) 返回小于或等于指定双精度浮点数的最大整数。
IEEERemainder 返回一指定数字被另一指定数字相除的余数。
Log(Double) 返回指定数字的自然对数(底为 e)。
Log(Double, Double) 返回指定数字在使用指定底时的对数。
Log10 返回指定数字以 10 为底的对数。
Max(Byte, Byte) 返回两个 8 位无符号整数中较大的一个。
Max(Decimal, Decimal) 返回两个十进制数中较大的一个。
Max(Double, Double) 返回两个双精度浮点数字中较大的一个。
Max(Int16, Int16) 返回两个 16 位有符号的整数中较大的一个。
Max(Int32, Int32) 返回两个 32 位有符号的整数中较大的一个。
Max(Int64, Int64) 返回两个 64 位有符号的整数中较大的一个。
Max(SByte, SByte) 返回两个 8 位有符号的整数中较大的一个。
Max(Single, Single) 返回两个单精度浮点数字中较大的一个。
Max(UInt16, UInt16) 返回两个 16 位无符号整数中较大的一个。
Max(UInt32, UInt32) 返回两个 32 位无符号整数中较大的一个。
Max(UInt64, UInt64) 返回两个 64 位无符号整数中较大的一个。
Min(Byte, Byte) 返回两个 8 位无符号整数中较小的一个。
Min(Decimal, Decimal) 返回两个十进制数中较小的一个。
Min(Double, Double) 返回两个双精度浮点数字中较小的一个。
Min(Int16, Int16) 返回两个 16 位有符号整数中较小的一个。
Min(Int32, Int32) 返回两个 32 位有符号整数中较小的一个。
Min(Int64, Int64) 返回两个 64 位有符号整数中较小的一个。
Min(SByte, SByte) 返回两个 8 位有符号整数中较小的一个。
Min(Single, Single) 返回两个单精度浮点数字中较小的一个。
Min(UInt16, UInt16) 返回两个 16 位无符号整数中较小的一个。
Min(UInt32, UInt32) 返回两个 32 位无符号整数中较小的一个。
Min(UInt64, UInt64) 返回两个 64 位无符号整数中较小的一个。
Pow 返回指定数字的指定次幂。
Round(Decimal) 将小数值舍入到最接近的整数值。
Round(Double) 将双精度浮点值舍入为最接近的整数值。
Round(Decimal, Int32) 将小数值按指定的小数位数舍入。
Round(Decimal, MidpointRounding) 将小数值舍入到最接近的整数。 一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Round(Double, Int32) 将双精度浮点值按指定的小数位数舍入。
Round(Double, MidpointRounding) 将双精度浮点值舍入为最接近的整数。 一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Round(Decimal, Int32, MidpointRounding) 将小数值按指定的小数位数舍入。 一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Round(Double, Int32, MidpointRounding) 将双精度浮点值按指定的小数位数舍入。 一个参数,指定当一个值正好处于另两个数中间时如何舍入这个值。
Sign(Decimal) 返回表示数字符号的值。
Sign(Double) 返回表示双精度浮点数字的符号的值。
Sign(Int16) 返回一个值,该值表示 16 位有符号整数的符号。
Sign(Int32) 返回一个值,该值表示 32 位有符号整数的符号。
Sign(Int64) 返回一个值,表示 64 位有符号整数的符号。
Sign(SByte) 返回表示 8 位有符号整数的符号的值。
Sign(Single) 返回表示单精度浮点数字的符号的值。
Sin 返回指定角度的正弦值。
Sinh 返回指定角度的双曲正弦值。
Sqrt 返回指定数字的平方根。
Tan 返回指定角度的正切值。
Tanh 返回指定角度的双曲正切值。
Truncate(Decimal) 计算指定小数的整数部分。
Truncate(Double) 计算指定双精度浮点数的整数部分。

提示和注释

System.Math 类例子

下面的示例使用 Math 类中的几个数学函数和三角函数来计算一个梯形的几个内角。

/// 
	/// The following class represents simple functionality of the trapezoid.
	/// 
	class MathTrapezoidSample
	{
		private double m_longBase;
		private double m_shortBase;
		private double m_leftLeg;
		private double m_rightLeg;

		public MathTrapezoidSample(double longbase, double shortbase, double leftLeg, double rightLeg)
		{
			m_longBase = Math.Abs(longbase);
			m_shortBase = Math.Abs(shortbase);
			m_leftLeg = Math.Abs(leftLeg);
			m_rightLeg = Math.Abs(rightLeg);
		}

		private double GetRightSmallBase()
		{
			return (Math.Pow(m_rightLeg,2.0) - Math.Pow(m_leftLeg,2.0) + Math.Pow(m_longBase,2.0) + Math.Pow(m_shortBase,2.0) - 2* m_shortBase * m_longBase)/ (2*(m_longBase - m_shortBase));
		}

		public double GetHeight()
		{
			double x = GetRightSmallBase();
			return Math.Sqrt(Math.Pow(m_rightLeg,2.0) - Math.Pow(x,2.0));
		}

		public double GetSquare()
		{
			return GetHeight() * m_longBase / 2.0;
		}

		public double GetLeftBaseRadianAngle()
		{
			double sinX = GetHeight()/m_leftLeg;
			return Math.Round(Math.Asin(sinX),2);
		}

		public double GetRightBaseRadianAngle()
		{
			double x = GetRightSmallBase();
			double cosX = (Math.Pow(m_rightLeg,2.0) + Math.Pow(x,2.0) - Math.Pow(GetHeight(),2.0))/(2*x*m_rightLeg);
			return Math.Round(Math.Acos(cosX),2);
		}

		public double GetLeftBaseDegreeAngle()
		{
			double x = GetLeftBaseRadianAngle() * 180/ Math.PI;
			return Math.Round(x,2);
		}

		public double GetRightBaseDegreeAngle()
		{
			double x = GetRightBaseRadianAngle() * 180/ Math.PI;
			return Math.Round(x,2);
		}

		static void Main(string[] args)
		{
			MathTrapezoidSample trpz = new MathTrapezoidSample(20.0, 10.0, 8.0, 6.0);
			Console.WriteLine("The trapezoid's bases are 20.0 and 10.0, the trapezoid's legs are 8.0 and 6.0");
			double h = trpz.GetHeight();
			Console.WriteLine("Trapezoid height is: " + h.ToString());
			double dxR = trpz.GetLeftBaseRadianAngle();
			Console.WriteLine("Trapezoid left base angle is: " + dxR.ToString() + " Radians");
			double dyR = trpz.GetRightBaseRadianAngle();
			Console.WriteLine("Trapezoid right base angle is: " + dyR.ToString() + " Radians");
			double dxD = trpz.GetLeftBaseDegreeAngle();
			Console.WriteLine("Trapezoid left base angle is: " + dxD.ToString() + " Degrees");
			double dyD = trpz.GetRightBaseDegreeAngle();
			Console.WriteLine("Trapezoid left base angle is: " + dyD.ToString() + " Degrees");
		}
	}

继承层次结构

System.Object

System.Math

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。

相关资源

System 命名空间
MSDN