2014-01-20 10 views
-4

Как использовать эту формулу в C#?Как преобразовать формулу строки в C#?

double Diameter = 160; 

double Height = 118.2; 

double pi = 3.1416 

двойной результат =

enter image description here

+1

См. Класс 'System.Math'. –

+1

Что вы пробовали? Что ты не понимаешь? Вы спрашиваете, как умножать числа? – SLaks

+0

Проверьте класс System.Math, он имеет почти все, что вам нужно. В противном случае вы можете искать библиотеки, такие как MathUtils: https://github.com/Artentus/MathUtils –

ответ

0

Сначала вы 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 ; 
} 
+0

Большое вам спасибо – user3107343

+0

Результат возврата NaN. Что это значит? – user3107343

+0

Nan = не номер. Стандартное условие ошибки с плавающей запятой. Такие вещи, как деление на ноль, взятие квадратного корня из отрицательного числа, попытка получить обратный синус значения x вне домена -1 <= x <= +1 и т. Д. Будет генерировать 'Nan'. И «NaN» распространяется. См. Http://en.wikipedia.org/wiki/NaN#Operations_generating_NaN. Как указывали другие, ваша формула, похоже, имеет некоторые проблемы. –

Смежные вопросы