Вычисления с повышенной точностью в C#

Тема в разделе ".NET", создана пользователем Alyona, 16 фев 2010.

Статус темы:
Закрыта.
  1. Alyona

    Alyona Гость

    Здравствуйте! Нужно выполнить вычисление используя переменные типа Decimal (нужна высокая точность вычилений, примерно 1е-18), но функция Math.Cos либо их не поддерживает, либо я просто не знаю как это реализовать. Может в С# для вычисления Cos можно использовать другую функцию?
    Код (Text):
    static decimal f(decimal x, decimal y)
    {
    decimal fx;
    fx = 10 * Math.Cos(5 * x) - 2 * y;
    return fx;
    }
    При комплиляции выдается ошибка: Наиболее подходящий перегруженный метод для "System.Math.Cos(double)" имеет несколько недопустимых аргументов.
    Применив Math.Cos((double)5*x) возникает ошибка: Оператор "*" не может применяться к операндам типа "double" и "decimal".
    Мне не достаточно точности double (15-16 digits), мне нужна точность не мене 18 цифр за запятой, поддерживает ли такую точность какой-нибудь тип данных в C#?
     
  2. YAK

    YAK Гость

    1. decimal result = (decimal)Math.Cos((double)(5*x))
    2. Реализуйте свою операцию Косинуса, если необходима высокая точность
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей