C# Math类详细说明

1、Math.Cos(X) 
 
函数中的X 都是指的“弧度”而非“角度”,弧度的计算公式为: 2*PI/360*角度,例如:X° 角度 的弧度为2*PI/360*X或者 Math.Cos(Math.PI * X° / 180) 
 

Math.sin(x)      x 的正玄值。返回值在 -1.0 到 1.0 之间;

Math.cos(x)    x 的余弦值。返回的是 -1.0 到 1.0 之间的数;

2、其他方法说明
 
名称说明
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) 计算指定双精度浮点数的整数部分。
 
3、MSDN示例
/// <summary>
/// The following class represents simple functionality of the trapezoid.
/// </summary>
using System;

namespace MathClassCS
{
	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");
		}
	}
}
原文地址:https://www.cnblogs.com/wcnm/p/3907600.html