Класс math си шарп

Класс Math для математических вычислений в C#

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Статический класс Math содержит ряд методов и констант для выполнения математических, тригонометрических, логарифмических и других операций. Так как класс статический, то и все его методы также являются статическими, т.е. вызывать эти методы можно без создания объекта типа Math . Рассмотрим основные методы этого класса.

Все тригонометрические, обратные тригонометрические, гиперболические и обратные гиперболические методы в C# используют значения углов измеренных в радианах

Тригонометрические функции (синус, косинус, тангенс)

Cos(x) — возвращает косинус указанного угла x . Например,

x = Math.Cos(1);//0,5403023058681398 x = Math.Cos(0.5); //0,8775825618903728 x = Math.Cos(0.75);//0,7316888688738209 x = Math.Cos(-1);//0,5403023058681398

Sin(x) — возвращает синус указанного угла x . Например,

x = Math.Sin(1);//0,8414709848078965 x = Math.Sin(0.5); //0,479425538604203 x = Math.Sin(0.75);//0,6816387600233341 x = Math.Sin(-1);//-0,8414709848078965

Tan(x) — возвращает тангенс указанного угла x . Например,

x = Math.Tan(1);//1,5574077246549023 x = Math.Tan(0.5); //0,5463024898437905 x = Math.Tan(0.75);//0,9315964599440725 x = Math.Tan(-1);//-1,5574077246549023

Обратные тригонометрические функции (арккосинус, арксинус, арктангенс)

Acos(x) — вычисляет арккосинус заданного числа. Параметр x должен находиться в диапазоне от -1 до 1. Значение, возвращаемое методом — радианы. Пример:

x = Math.Acos(1); //0 x = Math.Acos(0); //1,5707963267948966 x = Math.Acos(-1);//3,141592653589793 x = Math.Acos(0.5);//1,0471975511965979

Asin(x) — вычисляет арксинус числа. Параметр x должен находиться в диапазоне от -1 до 1. Например,

x = Math.Asin(1); //1,5707963267948966 x = Math.Asin(0); // 0 x = Math.Asin(10);//ошибка x>1 x = Math.Asin(-1);//-1,5707963267948966 x = Math.Asin(0.6);//0,6435011087932844

Atan(x) — возвращает арктангенс числа. Значение, возвращаемое методом лежит в диапазоне от -Пи/2 до +Пи/2. Например,

x = Math.Atan(1); //0,7853981633974483 x = Math.Atan(0); //0 x = Math.Atan(10);//1,4711276743037347 x = Math.Atan(-1);//-0,7853981633974483 x = Math.Atan(0.6);//0,5404195002705842

Atan2(x, y) — возвращает арктангенс для точки в декартовой системе координат с координатами ( x,y ). Например,

x = Math.Atan2(1,1); //0,7853981633974483 x = Math.Atan2(1,-1); //2,356194490192345 x = Math.Atan2(-1,1);//-0,7853981633974483 x = Math.Atan2(-1,-1);//-2,356194490192345

Этот метод возвращает значение (θ), в зависимости от того, в каком квадранте располагается точка, а именно:

При этом стоит особо отметить, что точки могут лежать и за пределами указанных квадрантов, например, когда одна из координат равна нулю. В этом случае метод работает следующим образом:

  • если y равно 0, и x не является отрицательным, то θ = 0.
  • если y равно 0, и x является отрицательным, то θ = π.
  • если y — положительное число, а x равно 0, то θ = π/2.
  • если y — отрицательное число, а х равно 0, то θ = -π/2.
  • если y равен 0, и х равен 0, то θ = 0.

Гиперболические функции (гаперболический косинус, гиперболический синус, гиперболический тангенс)

Cosh(x) — вычисляет гиперболический косинус указанного угла

x = Math.Cosh(1);//1,5430806348152437 x = Math.Cosh(0.5); //1,1276259652063807 x = Math.Cosh(0.75);//1,2946832846768448 x = Math.Cosh(-1);//1,5430806348152437

Sinh(x) — вычисляет гиперболический синус указанного угла

x = Math.Sinh(1);//1,1752011936438014 x = Math.Sinh(0.5); //0,5210953054937474 x = Math.Sinh(0.75);//0,82231673193583 x = Math.Sinh(-1);//-1,1752011936438014

Tanh(x) — вычисляет гиперболический тангенс указанного угла

x = Math.Tanh(1);//0,7615941559557649 x = Math.Tanh(0.5); //0,46211715726000974 x = Math.Tanh(0.75);//0,6351489523872873 x = Math.Tanh(-1);//-0,7615941559557649

Обратные гиперболические функции (ареакосинус, ареасинус, ареатангенс)

Acosh(x) — вычисляет ареакосинус. Параметр x должен быть больше 1. Например,

x = Math.Acosh(1); //0 x = Math.Acosh(0); // ошибка - x

Asinh(x) — вычисляет ареасинус. Например,

x = Math.Asinh(1);//0,881373587019543 x = Math.Asinh(0.5); //0,48121182505960347 x = Math.Asinh(0.75);//0,6931471805599453 x = Math.Asinh(-1);//-0,881373587019543

Atanh(x) — вычисляет ареатангенс. Значение x должно быть в пределах от -1 до 1. Например,

x = Math.Atanh(-0.5);//-0,5493061443340549 x = Math.Atanh(0.5); //0,5493061443340549 x = Math.Atanh(0.75);//0,9729550745276566 x = Math.Atanh(-0.75);//-0,9729550745276566

Вычисление логарифмов в C#

ILogB(x) — вычисляет целочисленный логарифм с основанием 2 указанного числа, то есть значение (int)log2(x) .

Log2(x) — вычисляет логарифм с основанием 2 указанного числа.

x = Math.Log2(15);//3,9068905956085187

Log(x) — вычисляет натуральный логарифм (с основанием e ) указанного числа.

x = Math.Log(15);//2,70805020110221

Log(x, y) — вычисляет логарифм указанного числа x по основанию y .

x = Math.Log(15, 2);//3,9068905956085187

Log10(x) — вычисляет логарифм с основанием 10 указанного числа

x = Math.Log10(15);//1,1760912590556813

Методы округления чисел в C#

Ceiling(x) — возвращает наименьшее целое число, которое больше или равно заданному числу

Floor(x) — возвращает наибольшее целое число, которое меньше или равно указанному числу

Round(x) — округляет значение до ближайшего целого значения; значения посередине округляются до ближайшего четного числа

Round(x, Int32 y) — округляет значение до указанного числа знаков после запятой; значения посередине округляются до ближайшего четного числа.

Round(x, Int32 y, Midpoint Rounding) — округляет значение до указанного числа дробных цифр, используя указанное соглашение о округлении

x = Math.Round(7.256, 2, MidpointRounding.ToZero);//7,25 x = Math.Round(7.256, 2, MidpointRounding.ToPositiveInfinity);//7,26 x = Math.Round(7.256, 2, MidpointRounding.ToNegativeInfinity);//7,25 x = Math.Round(7.256, 2, MidpointRounding.ToEven);//7,26

Round(x, Midpoint Rounding) — округляет значение на целое число, используя указанное соглашение об округлении

x = Math.Round(7.256, MidpointRounding.ToZero);//7

Truncate(x) — вычисляет целую часть заданного числа

Сравнение различных методов округления в C#

7,256 7,556 7,5
Ceiling(x) 8 8 8
Floor(x) 7 7 7
Round(x) 7 8 8
Round(x, 2) 7,26 7,56 7,5
Round(x, ToZero) 7 7 7
Round(x, 2, ToZero) 7,25 7,55 7,5
Round(x, 2, ToPositiveInfinity) 7,26 7,56 7,5
Round(x, 2, ToNegativeInfinity) 7,25 7,55 7,5
Round(x, 2, ToEven) 7,26 7,56 7,5
Truncate(x) 7 7 7

Возведение в степень и извлечение корней в C#

Cbrt(x) — возвращает кубический корень из x .

Exp(x) — возвращает e , возведенное в указанную степень x .

x = Math.Exp(3);//20,085536923187668

Pow(x, y) — возвращает число x , возведенное в степень y .

Sqrt(x) — возвращает квадратный корень из числа x .

Прочие математические операции

Abs(x) — возвращает абсолютное значение числа

x = Math.Abs(-2.7);//2.7 x = Math.Abs(2.7);//2.7

Big Mul(Int32, Int32) — умножает два 32-битовых числа и возвращает значение в Int64 .

double x = Math.BigMul(Int32.MaxValue, Int32.MaxValue);//4,6116860141324206E+18

Если в вашей программе предполагается использование очень больших чисел, то, возможно, вам стоит обратить внимание на тип BigInteger

Bit Decrement(x) — возвращает ближайшее самое маленькое значение, которое меньше, чем x .

x = Math.BitDecrement(1);//0,9999999999999999 x = Math.BitDecrement(-1);//-1,0000000000000002

Bit Increment(Double) — возвращает наименьшее ближайшее значение, которое больше указанного значения

x = Math.BitIncrement(1);//1,0000000000000002 x = Math.BitIncrement(-1);//-0,9999999999999999

Clamp(x, min, max) — Возвращает x , ограниченное диапазоном от min до max включительно.

x = Math.Clamp(3, 5, 10);//5 x = Math.Clamp(4, 5, 10);//5 x = Math.Clamp(11, 5, 10);//10

Copy Sign(Double, Double) — возвращает значение с величиной x и знаком y .

double x = Math.CopySign(-3, 5);//3 (знак + взят у 5) x = Math.CopySign(5, -10);//-5 (знак - взят у -10)

Div Rem(Int32, Int32, Int32) — Вычисляет частное чисел и возвращает остаток в выходном параметре

x = Math.DivRem(-3, 5, out int y);//x = 0; y = -3 x = Math.DivRem(10, 10, out int z);//x = 1; z = 0

Fused Multiply Add(x, y, z) — возвращает значение (x * y) + z, округленное в рамках одной тернарной операции.

x = Math.FusedMultiplyAdd(10.4566d, 5.56012f, 10.83789f);//68,97784156904221 x = (10.4566d * 5.56012f) + 10.83789f; //68,9778415690422

Метод Fused Multiply Add округляет значение один раз — в конце вычислений, в то время как обычное вычисление (x * y) + z вначале округляет значение, полученное в скобках, затем добавляет к полученному значению z и ещё раз округляет результат.

IEEERemainder(x, y) — Возвращает остаток от деления одного указанного числа на другое указанное число

double x = Math.IEEERemainder(10, 3);//1

Функция IEEERemainder не совпадает с оператором % , который также вычисляет остаток от деления. Различие заключается в формулах, используемых при вычислениях. Оператор действует следующим образом:

a % b = (Math.Abs(а) - (Math.Abs(b) * (Math.Floor(Math.Abs(a) / Math.Abs(b))))) * Math.Sign(a)

в то время, как метод IEEERemainder производит вычисления следующим образом:

IEEERemainder(а,b) = a-(b * Math.Round(a/b))

x = Math.IEEERemainder(-16.3, 4.1);//0,09999999999999787 x = -16.3 % 4.1;//-4,000000000000002

Max(x, y) — возвращает большее из чисел

x = Math.Max(-16.3, 4.1);//4,1 x = Math.Max(10, 5);//10

Max Magnitude(x, y) — возвращает большую величину из двух чисел двойной точности с плавающей запятой. При сравнении двух чисел не учитывается знак

x = Math.MaxMagnitude(-16.3, 4.1);//-16,3 x = Math.MaxMagnitude(10, 5);//10

Min(Byte, Byte) — возвращает меньшее из двух чисел

x = Math.Min(-16.3, 4.1);//-16,3 x = Math.Min(10, 5);//5

Min Magnitude(x, y) — возвращает меньшую величину из чисел. При сравнении не учитывается знак

x = Math.MinMagnitude(-16.3, 4.1);//4.1 x = Math.MinMagnitude(10, -5);//-5

ScaleB(x, y) — Возвращает значение x * 2^n, вычисленное наиболее эффективно.

Sign(x) — возвращает целое число, указывающее знак десятичного числа.

x = Math.Sign(-16.3);//-1 x = Math.Sign(10);//1 x = Math.Sign(0);//0

Константы класса Math

В классе Math также определены две константы — E и PI :

x = Math.E;//2,718281828459045 x = Math.PI;//3,141592653589793

Итого

В статическом классе Math содержатся функции для тригонометрических, гиперболических и прочих вычислений. Кроме этого, класс содержит ряд методов округления чисел как в большую, так и меньшую сторону, а также методы для возведения чисел в степень и вычисления корней.

уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Источник

Читайте также:  Php pdo prepare fetch all
Оцените статью