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

  • Автор темы Alyona
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Alyona

#1
Здравствуйте! Нужно выполнить вычисление используя переменные типа Decimal (нужна высокая точность вычилений, примерно 1е-18), но функция Math.Cos либо их не поддерживает, либо я просто не знаю как это реализовать. Может в С# для вычисления Cos можно использовать другую функцию?
Код:
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#?
 
Y
#2
1. decimal result = (decimal)Math.Cos((double)(5*x))
2. Реализуйте свою операцию Косинуса, если необходима высокая точность
 
Статус
Закрыто для дальнейших ответов.