Как использовать эту формулу в C#?Как преобразовать формулу строки в C#?
double Diameter = 160;
double Height = 118.2;
double pi = 3.1416
двойной результат =
Как использовать эту формулу в C#?Как преобразовать формулу строки в C#?
double Diameter = 160;
double Height = 118.2;
double pi = 3.1416
двойной результат =
Сначала вы read the documentation и довольно много кода его, как написано:
public static double ComputeResult(double diameter , double height)
{
double result = 0.5
* (
((2.0*height) - diameter)
* Math.Sqrt((height*diameter) - Math.Pow(height,2.0))
+ (diameter/2.0)
* Math.Asin(2.0*height -1.0)
/diameter
+ (Math.PI * Math.Pow(diameter,2.0))
/2.0
) ;
return result ;
}
Хотя ваша формула кажется выплюнуть NaN
(не число) совсем немного.
Будет легче проверить ваши вычисления, если вы реорганизуете его, чтобы оценить каждый промежуточный расчет по отдельности и создать результат по ходу дела, как если бы вы работали на бумаге/доске/слайде/калькуляторе/калькуляторе ,
У вас есть по существу 3 мультипликативные выражения, которые вычисляются, суммируются вместе и разделить на 2, так что вы можете разбить его на по крайней мере 3-х штук (хотя я бы, вероятно, идти дальше):
public static double ComputeResult(double diameter , double height)
{
double t1 = ((2.0*height) - diameter)
* Math.Sqrt((height*diameter) - Math.Pow(height,2.0))
;
double t2 = (diameter/2.0)
* Math.Asin(2.0*height-1.0)
/diameter
;
double t3 = (Math.PI * Math.Pow(diameter,2.0))
/2.0
;
double result = 0.5 * (t1 + t2 + t3) ;
return result ;
}
Большое вам спасибо – user3107343
Результат возврата NaN. Что это значит? – user3107343
Nan = не номер. Стандартное условие ошибки с плавающей запятой. Такие вещи, как деление на ноль, взятие квадратного корня из отрицательного числа, попытка получить обратный синус значения x вне домена -1 <= x <= +1 и т. Д. Будет генерировать 'Nan'. И «NaN» распространяется. См. Http://en.wikipedia.org/wiki/NaN#Operations_generating_NaN. Как указывали другие, ваша формула, похоже, имеет некоторые проблемы. –
ЗАКАНЧИВАТЬ Math
(http://msdn.microsoft.com/en-us/library/system.math(v=vs.110).aspx) класс ... такие методы, как военнопленный и SQRT доступны там.
См. Класс 'System.Math'. –
Что вы пробовали? Что ты не понимаешь? Вы спрашиваете, как умножать числа? – SLaks
Проверьте класс System.Math, он имеет почти все, что вам нужно. В противном случае вы можете искать библиотеки, такие как MathUtils: https://github.com/Artentus/MathUtils –