ОБСУЖДЕНИЕ

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

1 ответов 7,5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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