Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c语言中转换字符串公式?_C# - Fatal编程技术网

C# 如何在c语言中转换字符串公式?

C# 如何在c语言中转换字符串公式?,c#,C#,我如何在c中使用这个公式 double Diameter = 160; double Height = 118.2; double pi = 3.1416 双重结果= 看看数学课。。。POW和SQRT等方法在那里可用。首先,您可以编写并编写如下代码: public static double ComputeResult( double diameter , double height ) { double result = 0.5 * (

我如何在c中使用这个公式

double Diameter = 160;

double Height = 118.2;

double pi = 3.1416
双重结果=

看看数学课。。。POW和SQRT等方法在那里可用。

首先,您可以编写并编写如下代码:

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 ;
}
虽然你的公式似乎给出了一个不太多的数字

如果你重构计算以单独评估每个中间计算,并在进行过程中建立结果,那么检查计算会更容易,就像在纸上/黑板上/计算尺上/计算器上工作一样

基本上有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 ;
}

看看课程体系。数学。你试了什么?你还不明白什么?你是在问如何乘法吗?检查系统。数学课它几乎有你需要的一切。否则,您可以查找类似MathUtils的库:您的公式看起来可能有错误,您有sin^-1,但在括号中仅环绕2*Height-1。假设你有原始方程,你可能想把它分解成多个步骤,这是一个非常复杂的方程。另外,Math.PI有一个正确的值,因为PI有一个双精度。我同意Guvante的观点,这在一个结果中太难了。。。那会非常吵闹。最好的办法是把它分成几个部分。重要的是你知道这个等式在做什么。一旦你搞定了,就用System.Math来做指数,三角和平方根。应该很简单。也总是用Math.Pi代替Pi。对于双精度类型,您的缺少精度。结果返回NaN。这意味着什么?NaN=不是数字。标准浮点错误条件。比如除以零,取一个负数的平方根,试图得到域-1之外的值x的反正弦