Arcsin c как написать

Описание

         Вычисляет    значение   arcsin(x)    в    диапазоне
         [-пи/2, пи/2].  Значение  аргумента x должно быть в
         диапазоне [-1, 1].

Использование

         #include <math.h>
         double asin(double x);                   /* ANSI */

Возвращаемое значение

         Возвращает значение  arcsin  от входного аргумента.
         Если значение меньше -1 или больше 1, устанавливает
         errno в EDOM, печатает DOMAIN сообщение об ошибке в
         stderr и возвращает 0. Обработку ошибки можно моди-
         фицировать посредством функции matherr.

Пример

         #include <math.h>
         #include <stdio.h>
         main ()
         {
           double x, y;
           x = .94;
           y = asin(x);
           printf("Арксинус от %f равен %fn", x, y);
         }

Рекомендация

         Смотрите также atan, atan2, acos.

оглавление

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Math.Asin() is an inbuilt Math class method which returns the angle whose sine value is given as a double value argument. If the argument is NaN, then the result will be NaN.

    Syntax:

    public static double Asin(double num)
    

    Parameter:

    num: It is the number that represents a sine and type of this parameter is System.Double. It must be greater than or equal to -1, but less than or equal to 1.

    Return Type: Returns an angle Θ, measured in radians and its type is System.Double. Here the angle is always measured in radians, such that -π/2 ≤ Θ ≤ π/2.

    Note: If the value of the num is greater than 1 or less than -1 or equals to NaN, then this method always returns NaN as result. To convert the radians(return value) to degrees multiply it by 180 / Math.PI. A positive return value always represents a counter clock-wise angle from the x-axis and a negative return value always represents a clockwise angle.

    Examples:

    Input  : Math.Asin(2)
    Output : NaN
    
    Input  : Math.Asin(0.3584)
    Output : 0.366553473829125
         
    Input  : Math.Asin(0.0)
    Output : 0
    
    Input  : Math.Asin(-0.0)
    Output : 0
    
    Input  : Math.Asin(Double.PositiveInfinity)
    Output : NaN
    
    Input  : Math.Asin(Double.NegativeInfinity)
    Output : NaN
    

    Program: To illustrate the Math.Asin() method

    using System;

    class Geeks {

        public static void Main(String[] args)

        {

            double a = Math.PI;

            Console.WriteLine(Math.Asin(a));

            Console.WriteLine(Math.Asin(2));

            Console.WriteLine(Math.Asin(0.3584));

            double d = 0.0;

            double e = -0.0;

            double posi = Double.PositiveInfinity;

            double nega = Double.NegativeInfinity;

            double nan = Double.NaN;

            double res = Math.Asin(d);

            double rest = res * (180 / Math.PI);

            Console.WriteLine(rest);

            Console.WriteLine(Math.Asin(e));

            Console.WriteLine(Math.Asin(posi));

            Console.WriteLine(Math.Asin(nega));

            Console.WriteLine(Math.Asin(nan));

        }

    }

    Output:

    NaN
    NaN
    0.366553473829125
    0
    0
    NaN
    NaN
    NaN
    

    Reference: https://msdn.microsoft.com/en-us/library/system.math.Asin

    totn C Functions


    In the C Programming Language, the asin function returns the arc sine of x.

    Syntax

    The syntax for the asin function in the C Language is:

    double asin(double x);

    Parameters or Arguments

    x
    A value between -1 and 1. A domain error will occur if x is not between -1 and 1.

    Returns

    The asin function returns the arc sine of a number represented by x. It will return a value between -π/2 and π/2.

    Required Header

    In the C Language, the required header for the asin function is:

    #include <math.h>

    Applies To

    In the C Language, the asin function can be used in the following versions:

    • ANSI/ISO 9899-1990

    asin Example

    /* Example using asin by TechOnTheNet.com */
    
    #include <stdio.h>
    #include <math.h>
    
    int main(int argc, const char * argv[])
    {
        /* Define temporary variables */
        double value;
        double result;
    
        /* Assign the value we will find the asin of */
        value = 0.5;
    
        /* Calculate the Arc Sine of value */
        result = asin(value);
    
        /* Display the result of the calculation */
        printf("The Arc Sine of %f is %fn", value, result);
    
        return 0;
    }

    When compiled and run, this application will output:

    The Arc Sine of 0.500000 is 0.523599

    Similar Functions

    Other C functions that are similar to the asin function:

    • acos function <math.h>
    • atan function <math.h>
    • atan2 function <math.h>
    • cos function <math.h>
    • sin function <math.h>
    • tan function <math.h>

    Defined in header <cmath>

    (1)

    float       asin ( float arg );

    float       asinf( float arg );

    (since C++11)

    double      asin ( double arg );

    (2)
    (3)

    long double asin ( long double arg );

    long double asinl( long double arg );

    (since C++11)

    double      asin ( IntegralType arg );

    (4) (since C++11)

    1-3) Computes the principal value of the arc sine of arg.

    4) A set of overloads or a function template accepting an argument of any integral type. Equivalent to 2) (the argument is cast to double).

    [edit] Parameters

    [edit] Return value

    If no errors occur, the arc sine of arg (arcsin(arg)) in the range [- , +], is returned.

    If a domain error occurs, an implementation-defined value is returned (NaN where supported)

    If a range error occurs due to underflow, the correct result (after rounding) is returned.

    [edit] Error handling

    Errors are reported as specified in math_errhandling.

    Domain error occurs if arg is outside the range [-1.0, 1.0]

    If the implementation supports IEEE floating-point arithmetic (IEC 60559),

    • If the argument is ±0, it is returned unmodified
    • If |arg| > 1, a domain error occurs and NaN is returned.
    • if the argument is NaN, NaN is returned

    [edit] Example

    #include <cmath>
    #include <iostream>
    #include <cerrno>
    #include <cfenv>
    #include <cstring>
     
    #pragma STDC FENV_ACCESS ON
    int main()
    {
        std::cout << "asin(1.0) = " << asin(1) << 'n'
                  << "2*asin(1.0) = " << 2*asin(1) << 'n'
                  << "asin(-0.5) = " << asin(-0.5) << 'n'
                  << "6*asin(-0.5) =" << 6*asin(-0.5) << 'n';
        // special values
        std::cout << "asin(0.0) = " << asin(0) << " asin(-0.0)=" << asin(-0.0) << 'n';
        // error handling
        errno = 0;
        std::feclearexcept(FE_ALL_EXCEPT);
        std::cout << "asin(1.1) = " << asin(1.1) << 'n';
        if (errno == EDOM)
            std::cout << "    errno == EDOM: " << std::strerror(errno) << 'n';
        if (std::fetestexcept(FE_INVALID))
            std::cout << "    FE_INVALID raised" << 'n';
    }

    Possible output:

    asin(1.0) = 1.5708
    2*asin(1.0) = 3.14159
    asin(-0.5) = -0.523599
    6*asin(-0.5) = -3.14159
    asin(0.0) = 0 asin(-0.0)=-0
    asin(1.1) = nan
        errno == EDOM: Numerical argument out of domain
        FE_INVALID raised

    [edit] See also

    acosacosfacosl

    (C++11)(C++11)

    computes arc cosine (arccos(x))
    (function) [edit]

    atanatanfatanl

    (C++11)(C++11)

    computes arc tangent (arctan(x))
    (function) [edit]

    atan2atan2fatan2l

    (C++11)(C++11)

    arc tangent, using signs to determine quadrants
    (function) [edit]

    sinsinfsinl

    (C++11)(C++11)

    computes sine (sin(x))
    (function) [edit]

    asin(std::complex)

    (C++11)

    computes arc sine of a complex number (arcsin(z))
    (function template) [edit]

    asin(std::valarray)

    applies the function std::asin to each element of valarray
    (function template) [edit]

    C documentation for asin

    Craw

    238 / 49 / 6

    Регистрация: 10.06.2012

    Сообщений: 268

    Записей в блоге: 1

    1

    Вычислить арксинус угла в градусах

    02.11.2013, 23:42. Показов 12965. Ответов 8

    Метки нет (Все метки)


    C++
    1
    
    x = asin(sin(y * (pi / 180))) * (180 / pi);

    Краткое описание:
    х — искомый результат (арксинус в градусах), у — угол в градусах.
    В качестве параметра функции asin нужно передать синус угла в радианах, который вычисляется функцией sin, параметром которой является угол в радианах (поэтому мы переводим градусы в радианы). Т.к. asin возвращает значение в радианах, то переводим в градусы.

    Компилируется без проблем, но во время работы возникает ошибка — входная строка имела неверный формат. Честно говоря, никак не могу понять, в чём дело, может быть ошибка где-то в вычислении?



    0



    chedman

    81 / 80 / 9

    Регистрация: 30.10.2013

    Сообщений: 251

    03.11.2013, 08:43

    2

    У меня это работает

    C++
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    #include <iostream>
    #include <math.h>
     
    using namespace std;
     
    int main()
    {
        double y,x;
        cin >> y;
        x = asin(sin(y * (M_PI / 180))) * (180 / M_PI);
        cout << x << endl;
        return 0;
    }



    0



    238 / 49 / 6

    Регистрация: 10.06.2012

    Сообщений: 268

    Записей в блоге: 1

    03.11.2013, 14:53

     [ТС]

    3

    х и у должны быть равны: arcsin (sin x) = x, но у меня это не получается никак. Например, если у = 45, то х = -62217693,87. Всё верно только при у = 0 (х = 0).

    Прилагаю проект, чтобы могли увидеть проблему и помочь с решением.



    0



    chedman

    81 / 80 / 9

    Регистрация: 30.10.2013

    Сообщений: 251

    03.11.2013, 15:56

    4

    А почему у тебя

    C++
    1
    
    #define pi 3,141592653

    А не

    C++
    1
    
    #define pi 3.141592653



    1



    Craw

    238 / 49 / 6

    Регистрация: 10.06.2012

    Сообщений: 268

    Записей в блоге: 1

    03.11.2013, 20:50

     [ТС]

    5

    Да, спасибо, а то я и не заметил.

    Проблема теперь немного иного характера. Вычисляю arcsin x я так:

    C++
    1
    
    x = asin(y) * (180 / pi);

    где y = sin a, x = a. При у = 1 ответ верный — х = 90. А вот при 0,5 (или 0.5) вместо 45 выдает ошибку — неверный формат строки. Не могу понять, почему отказывается работать с разделителями?



    0



    81 / 80 / 9

    Регистрация: 30.10.2013

    Сообщений: 251

    03.11.2013, 21:05

    6

    Вроде нормальная строка кода, может вместо «180» написать «180.», хотя врятли.
    Может проблема в другом месте, ну там с типами данных или командами ввода/вывода чета не то.



    0



    238 / 49 / 6

    Регистрация: 10.06.2012

    Сообщений: 268

    Записей в блоге: 1

    03.11.2013, 21:15

     [ТС]

    7

    Скорее всего это так, где-то с типами. Но никак не могу найти. Вот проект (делаю калькулятор), буду очень благодарен, если посмотрите ошибку:



    0



    81 / 80 / 9

    Регистрация: 30.10.2013

    Сообщений: 251

    03.11.2013, 21:25

    8

    поменяй 180 на 180.0
    у себя это не могу проверить т.к. не использую Visual С++



    0



    Craw

    238 / 49 / 6

    Регистрация: 10.06.2012

    Сообщений: 268

    Записей в блоге: 1

    03.11.2013, 21:35

     [ТС]

    9


    У меня было

    C++
    1
    
    double y = Convert::ToInt32(txtNumber->Text);

    причиной всех бед!

    Но всё равно спасибо за помощь, иногда бывает очень трудно разглядеть такие ошибки. Да и компилятор не помог, хотя тут явная ошибка, ничего не заподозрил.



    0



    IT_Exp

    Эксперт

    87844 / 49110 / 22898

    Регистрация: 17.06.2006

    Сообщений: 92,604

    03.11.2013, 21:35

    Помогаю со студенческими работами здесь

    Найти значение угла в градусах, минутах и секундах
    Задано значение угла в радианах. Найти его величину в градусах, минутах и секундах.

    Описать функцию, которая вычисляет тангенс угла, введенного в градусах
    Описать функцию, которая вычисляет тангенс угла, введенного в градусах.

    Известны два угла треугольника (в градусах). Определить, существует ли такой треугольник.
    Помогите написать задачку на C++
    Даны два угла треугольника (в градусах). Определить, существует…

    Найти величину угла в градусах, если дана его величина R в радианах
    Описать функцию RadToDeg(R) вещественного типа, находящую ве-
    личину угла в градусах, если дана…

    Искать еще темы с ответами

    Или воспользуйтесь поиском по форуму:

    9

    Содержание

    • Тригонометрические функции (синус, косинус, тангенс)
    • Обратные тригонометрические функции (арккосинус, арксинус, арктангенс)
    • Гиперболические функции (гаперболический косинус, гиперболический синус, гиперболический тангенс)
    • Обратные гиперболические функции (ареакосинус, ареасинус, ареатангенс)
    • Вычисление логарифмов в C#
    • Методы округления чисел в C#
      • Сравнение различных методов округления в C#
    • Возведение в степень и извлечение корней в C#
    • Прочие математические операции
    • Константы класса Math
    • Итого

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

    Статический класс 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
    

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

    • для (xy) в квадранте 1: 0 < θ < π/2.
    • для (xy) в квадранте 2: π/2 < θ ≤ π.
    • для (xy) в квадранте 3: -π < θ < -π/2.
    • для (xy) в квадранте 4: -π/2 < θ < 0.

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

    • если 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<1
    x = Math.Acosh(10);//2,993222846126381
    x = Math.Acosh(3.14);//1,810991348900196
    x = Math.Acosh(10000);//9,903487550036129

    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

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

    x = Math.ILogB(15);//3

    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) — возвращает наименьшее целое число, которое больше или равно заданному числу 

    x = Math.Ceiling(7.256);//8

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

    x = Math.Floor(7.256);//7

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

    x = Math.Round(7.256);//7

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

    x = Math.Round(7.256, 1);//7,3

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

                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, MidpointRounding) — округляет значение на целое число, используя указанное соглашение об округлении

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

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

    x = Math.Truncate(7.256);//7

    Сравнение различных методов округления в 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.

    x = Math.Cbrt(27);//3

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

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

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

    x = Math.Pow(3,3);//27

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

    x = Math.Sqrt(9);//3

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

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

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

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

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

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

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

    BitIncrement(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

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

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

    DivRem(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

    FusedMultiplyAdd(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
    

    Метод FusedMultiplyAdd округляет значение один раз — в конце вычислений, в то время как обычное вычисление (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

    MaxMagnitude(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

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

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

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

    x = Math.ScaleB(-16.3, 8);//4172,8

    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 содержатся функции для тригонометрических, гиперболических и прочих вычислений. Кроме этого, класс содержит ряд методов округления чисел как в большую, так и меньшую сторону, а также методы для возведения чисел в степень и вычисления корней.

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

    The asin() function returns the arc sine (inverse sine) of a number in radians.

    The asin() function takes a single argument (1 ≥ x ≥ -1), and returns the arc sine in radians. Mathematically, asin(x) = sin-1(x).

    The asin() function is included in <math.h> header file.


    asin() Prototype

    double asin(double x);

    To find arc sine of type int, float or long double, you can explicitly convert the type to double using cast operator.

     int x = 0;
     double result;
     result = asin(double(x));

    Also, two functions asinf() and asinl() were introduced in C99 to work specifically with type float and long double respectively.

    float asinf(float x);
    long double asinl(long double x);

    asin() Parameter

    The asin() function takes a single argument in the range of [-1, +1]. It’s because the value of sine is in the range of 1 and -1.

    Parameter Description
    double value Required. A double value between — 1 and +1 inclusive.

    asin() Return Value

    The asin() functions returns the value in range of [-π/2, +π/2] in radians. If the parameter passed to the asin() function is less than -1 or greater than 1, the function returns NaN (not a number).

    Parameter (x) Return Value
    x = [-1, +1] [-π/2, +π/2] in radians
     -1 > x or x > 1 NaN (not a number)

    Example 1: asin() function with different parameters

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        // constant PI is defined
        const double PI =  3.1415926;
        double x, result;
    
        x =  -0.5;
        result = asin(x);
        printf("Inverse of sin(%.2f) = %.2lf in radiansn", x, result);
    
        // converting radians to degree
        result = asin(x)*180/PI;
        printf("Inverse of sin(%.2f) = %.2lf in degreesn", x, result);
    
        // paramter not in range
        x = 1.2;
        result = asin(x);
        printf("Inverse of sin(%.2f) = %.2lf", x, result);
    
        return 0;
    }
    

    Output

    Inverse of sin(-0.50) = -0.52 in radians
    Inverse of sin(-0.50) = -30.00 in degrees
    Inverse of sin(1.20) = nan
    

    Example 2: asinf() and asinl() function

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        float fx, fasinx;
        long double lx, ldasinx;
    
        // arc sinine of type float
        fx = -0.505405;
        fasinx = asinf(fx);
    
        // arc sinine of type long double
        lx = -0.50540593;
        ldasinx = asinf(lx);
    
        printf("asinf(x) = %f in radiansn", fasinx);
        printf("asinl(x) = %Lf in radians", ldasinx);
    
        return 0;
    }

    Output

    asinf(x) = -0.529851 in radians
    asinl(x) = -0.529852 in radians
    

    Понравилась статья? Поделить с друзьями:
  • Android studio как написать игру
  • And коротко как пишется
  • Anatolevich как правильно на английском пишется
  • Anastasia как пишется на английском
  • Alma mater как пишется правильно