Книга: C# 4.0: полное руководство
Класс Math
Класс Math
В классе Math
определен ряд стандартных математических операций, в том числе извлечение квадратного корня, вычисление синуса, косинуса и логарифмов. Класс Math
является статическим, а это означает, что все методы, определенные в нем, относятся к типу static
, объекты типа Math
не конструируются, а сам класс Math
неявно герметичен и не может наследоваться. Методы, определенные в классе Math
, перечислены в табл. 21.1, где все углы указаны в радианах.
В классе Math
определены также два следующих поля:
public const double Е
public const double PI
где E — значение основания натурального логарифма числа, которое обычно обозначается как е) a PI — значение числа пи.
Метод - Описание
public static double Abs(double value) - Возвращает абсолютную величину value
public static float Abs(float value) - Возвращает абсолютную величину value
public static decimal Abs(decimal value) - Возвращает абсолютную величину value
public static int Abs(int value) - Возвращает абсолютную величину value
public static short Abs(short value) - Возвращает абсолютную величину value
public static long Abs(long value) - Возвращает абсолютную величину value
public static sbyte Abs(sbyte value) - Возвращает абсолютную величину value
public static double Acos(double d) - Возвращает арккосинус d. Значение d должно на ходиться в пределах от -1 до 1
public static double Asin(double d) - Возвращает арксинус d. Значение d должно находиться в пределах от -1 до 1
public static double Atan(double d) - Возвращает арктангенс d
public static double Atan2(double y, double x) - Возвращает арктангенс частного от деления у/х
public static long BigMul(int a, int b) - Возвращает произведение а*b в виде значения типа long, исключая переполнение
public static double Ceiling(double a) - Возвращает наименьшее целое, которое представлено в виде значения с плавающей точкой и не меньше а. Так, если а равно 1,02, метод Ceiling() возвращает значение 2,0. А если а равно -1,02, то метод Ceiling() возвращает значение -1
public static double Ceiling(decimal d) - Возвращает наименьшее целое, которое представлено в виде значения десятичного типа и не меньше d. Так, если d равно 1,02, метод Ceiling() возвращает значение 2,0. А если d равно -1,02, то метод Ceiling() возвращает значение -1
public static double Cos(double d) - Возвращает косинус d
public static double Cosh(double d) - Возвращает гиперболический косинус d
public static int DivRem(int a, int b, out int result) - Возвращает частное от деления а/ b, а остаток — в виде параметра result типа out -
public static long DivRem(long a, long b,out long result) - Возвращает частное от деления а /b, а остаток — в виде параметра result типа out
public static double Exp (double d) - Возвращает основание натурального логарифма е, возведенное в степень d
public static decimal Floor(decimal d) - Возвращает наибольшее целое, которое представлено в виде значения десятичного типа и не больше d. Так, если d равно 1,02, метод Floor() возвращает значение 1,0. А если d равно -1,02, метод Floor() возвращает значение -2
public static double Floor(double d) - Возвращает наибольшее целое, которое представлено в виде значения с плавающей точкой и не больше d. Так, если d равно 1,02, метод Floor() возвращает значение 1,0. А если d равно -1,02, метод Floor() возвращает значение -2
public static double IEEERemainder(double x, double y) - Возвращает остаток от деления х/у
public static double Log(double d) - Возвращает натуральный логарифм значения d
public static double Log(double d, double newBase) - Возвращает натуральный логарифм по основанию newBase значения d
public static double Log10(double d) - Возвращает логарифм по основанию 10 значения d
public static double Max(double val1, double val2) - Возвращает большее из значений val1 и val2
public static float Max(float val1, float val2) - Возвращает большее из значений val1 и val2
public static decimal Max(decimal val1, decimal val2) - Возвращает большее из значений val1 и val2
public static int Max(int val1,int val2) - Возвращает большее из значений val1 и val2
public static short Max(short val1,short val2) - Возвращает большее из значений val1 и val2
public static long Max(long val1,long val2) - Возвращает большее из значений val1 и val2
public static uint Max(uint val1,uint val2) - Возвращает большее из значений val1 и val2
public static ushort Max(ushort val1,ushort val2) - Возвращает большее из значений val1 и val2
public static ulong Max(ulong val1,ulong val2) - Возвращает большее из значений val1 и val2
public static byte Max(byte val1,byte val2) - Возвращает большее из значений val1 и val2
public static sbyte Max(sbyte val1,sbyte val2) - Возвращает большее из значений val1 и val2
public static double Min(double val1,double val2) - Возвращает меньшее из значений val1 и val2
public static float Min(float val1,float val2) - Возвращает меньшее из значений val1 и val2
public static decimal Min(decimal val1,decimal val2) - Возвращает меньшее из значений val1 и val2
public static int Min(int val1,int val2) - Возвращает меньшее из значений val1 и val2
public static short Min(short val1,short val2) - Возвращает меньшее из значений val1 и val2
public static long Min(long val1,long val2) - Возвращает меньшее из значений val1 и val2
public static uint Min(uint val1,uint val2) - Возвращает меньшее из значений val1 и val2
public static ushort Min(ushort val1,ushort val2) - Возвращает меньшее из значений val1 и val2
public static ulong Min(ulong val1,ulong val2) - Возвращает меньшее из значений val1 и val2
public static byte Min(byte val1,byte val2) - Возвращает меньшее из значений val1 и val2
public static sbyte Min(sbyte val1,sbyte val2) - Возвращает меньшее из значений val1 и val2
public static double Pow(double x,double y) - Возвращает значение х, возведенное в степень у (хy)
public static double Round(double a) - Возвращает значение а, округленное до ближайшего целого числа
public static decimal Round(decimal d) - Возвращает значение d, округленное до ближайшего целого числа
public static double Round(double value, int digits) - Возвращает значение value, округленное до числа, количество цифр в дробной части которого равно значению параметра digits
public static decimal Round(decimal d,int digits) - Возвращает значение d, округленное до числа, количество цифр в дробной части которого равно значению digits
public static double Round(double value, MidpointRounding mode) - Возвращает значение value, округленное до ближайшего целого числа в режиме, определяемом параметром mode
public static decimal Round(decimal d, MidpointRounding mode) - Возвращает значение d, округленное до ближайшего целого числа в режиме, определяемом параметром mode
public static double Round(double value,int digits,MidpointRounding mode) - Возвращает значение value, округленное до числа, количество цифр в дробной части которого равно значению digits, а параметр mode определяет режим округления
public static decimal Round(decimal d,int digits, MidpointRounding mode) - Возвращает значение d, округленное до числа, количество цифр в дробной части которого равнозначению digits, а параметр mode определяет режим округления
public static int Sign(double value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static int Sign(float value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static int Sign(decimal value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static int Sign(int value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static int Sign(short value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static int Sign(long value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static int Sign(sbyte value) - Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля
public static double Sin(double a) - Возвращает синус числа а
public static double Sinh(double value) - Возвращает гиперболический синус числа value
public static double Sqrt(double d) - Возвращает квадратный корень числа d
public static double Tan(double a) - Возвращает тангенс числа а
public static double Tanh(double value) - Возвращает гиперболический тангенс числа value
public static double Truncate(double d) - Возвращает целую часть числа d
public static decimal Truncate(decimal d) - Возвращает целую часть числа d
В приведенном ниже примере программы метод Sqrt()
служит для расчета гипотенузы по длине противоположных сторон прямоугольного треугольника согласно теореме Пифагора.
// Расчет гипотенузы по теореме Пифагора.
using System;
class Pythagorean {
static void Main() {
double s1;
double s2;
double hypot;
string str;
Console.WriteLine("Введите длину первой стороны треугольника: ");
str = Console.ReadLine();
s1 = Double.Parse(str);
Console.WriteLine("Введите длину второй стороны треугольника: ");
str = Console.ReadLine();
s2 = Double.Parse (str) ;
hypot = Math.Sqrt(s1 * s1 + s2 * s2);
Console.WriteLine("Длина гипотенузы равна " + hypot);
}
}
Ниже приведен один из возможных результатов выполнения этой программы.
Введите длину первой стороны треугольника: 3
Введите длину второй стороны треугольника: 4
Длина гипотенузы равна: 5
Далее следует пример программы, в которой метод Pow()
служит для расчета первоначальных капиталовложений, требующихся для получения предполагаемой будущей стоимости, исходя из годовой нормы прибыли и количества лет. Ниже приведена формула для расчета первоначальных капиталовложений.
первоначальные капиталовложения =
будущая стоимость / (1 + норма прибыли)количество лет
В вызове метода Pow() необходимо указывать аргументы типа double, поэтому норма прибыли и количество лет задаются в виде значений типа double
. А первоначальные капиталовложения и будущая стоимость задаются в виде значений типа decimal
.
/* Рассчитать первоначальные капиталовложения, необходимые для получения заданной будущей стоимости, исходя из годовой нормы прибыли и количества лет. */
using System;
class Initiallnvestment {
static void Main() {
decimal initInvest; // первоначальные капиталовложения
decimal futVal; // будущая стоимость
double numYears; // количество лет
double intRate; // годовая норма прибыли
string str;
Console.Write("Введите будущую стоимость: ");
str = Console.ReadLine();
try {
futVal = Decimal.Parse(str);
}
catch (FormatException exc) {
Console.WriteLine(exc.Message);
return;
}
Console.Write("Введите норму прибыли (например, 0.085): ");
str = Console.ReadLine();
try {
intRate = Double.Parse(str);
}
catch (FormatException exc) {
Console.WriteLine(exc.Message);
return;
}
Console.Write("Введите количество лет: ");
str = Console.ReadLine();
try {
numYears = Double.Parse(str);
}
catch (FormatException exc) {
Console.WriteLine(exc.Message);
return;
}
initInvest =
futVal / (decimal)Math.Pow(intRate + 1.0, numYears);
Console.WriteLine("Необходимые первоначальные капиталовложения: {0:C}", initInvest);
}
}
Ниже приведен один из возможных результатов выполнения этой программы.
Введите будущую стоимость: 10000
Введите норму прибыли (например, 0.085): 0.07
Введите количество лет: 10
Необходимые первоначальные капиталовложения: $5,083.49
- Члены пространства имен System
- Класс Math
- Структуры .NET, соответствующие встроенным типам значений
- Класс Array
- Класс BitConverter
- Генерирование случайных чисел средствами класса Random
- Управление памятью и класс GC
- Класс object
- Класс Tuple
- Интерфейсы IComparable и IComparable
- Интерфейс IEquatable
- Интерфейс IConvertible
- Интерфейс ICloneable
- Интерфейсы IFormatProvider и IFormattable
- Интерфейсы IObservable и IObserver