Книга: 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

Оглавление книги


Генерация: 0.081. Запросов К БД/Cache: 0 / 2
поделиться
Вверх Вниз