为什么程序运行之后 A,beita 和 ReD2 的值都是非数字呢?弄了一下午了没有弄出来,求指点迷津
程序代码如下,求大神告诉错误所在,debug了一下午了using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
class Class1
{
public double t, p, D20, d20,A,Dt,dt,dp,ReD2,beita;
public double lanmuda_D = 12.78E-6f;
public double lanmuda_d = 17.2E-6;
public double rou1 = 855.69;
public double nang = 126.93E-6;
public double yu = 1;
public double pi = 3.1415927;
public double get_Dt(double D20, double lanmuda_d, double t)
{
double Dt = D20 * (1 + lanmuda_D * (t - 20));
Console.WriteLine("孔板使用温度下的管内径是: " + Dt);
return Dt;
}
public double get_dt(double d20, double lanmuda_d, double t)
{
double dt = d20 * (1 + lanmuda_d * (t - 20));
Console.WriteLine("孔板使用温度下的节流件孔径是:" + dt);
return dt;
}
public double get_beita(double dt, double Dt)
{
double beita = dt / Dt;
Console.WriteLine("beita=" + beita);
this.beita = beita;
return beita;
}
public double get_A(double rou1, double nang, double dp, double beita)
{
double A = yu * dt * dt * Math.Sqrt(2 * rou1 * dp) / (nang * Dt * Math.Sqrt(1 - beita * beita * beita * beita));
Console.WriteLine("A=" + A);
this.A = A;
return A;
}
public void test1(double beita, double A)
{
double ReD1, ReD2, C1, C2, C0;
C0 = 0.60299;
ReD1 = A * C0;
C1 = C0 + 0.0029 * Math.Pow(beita, 2.5) * Math.Pow((1E6 / ReD1), 0.75);
ReD2 = A * C1;
C2 = C0 + 0.0029 * Math.Pow(beita, 2.5) * Math.Pow((1E6 / ReD2), 0.75);
while (Math.Abs((A - ReD2 / C2) / A) < 5E-5)
{
A = ReD2 / C2;
ReD1 = A * C0;
C1 = C0 + 0.0029 * Math.Pow(beita, 2.5) * Math.Pow((1E6 / ReD1), 0.75);
ReD2 = A * C1;
C2 = C0 + 0.0029 * Math.Pow(beita, 2.5) * Math.Pow((1E6 / ReD2), 0.75);
}
Console.WriteLine("ReD2=" + ReD2);
}
public double get_qm(double pi, double Dt, double ReD2)
{
double qm = nang * Dt * ReD2 * pi / 4;
Console.WriteLine("流量qm=" + qm);
return 0;
}
public static void Main()
{
double t = 215f;
double D20 = 150f;
double d20 = 95.59f;
double pi = 3.1415926f;
double nang = 126.93E-6; ;
double beita, A;
double rou1 = 855.69;
Class1 myclass = new Class1();
myclass.t = 215;
myclass.D20 = 150;
myclass.d20 = d20;
myclass.pi = pi;
myclass.nang = nang;
myclass.rou1 = rou1;
myclass.get_Dt(myclass.D20, myclass.lanmuda_D, myclass.t);
myclass.get_dt(myclass.d20, myclass.lanmuda_d, myclass.t);
myclass.get_qm(myclass.pi, myclass.Dt, myclass.ReD2);
beita = myclass.get_beita(myclass.dt, myclass.Dt);
A = myclass.get_A(myclass.rou1, myclass.nang, myclass.dp, beita);
myclass.test1(beita, A);
}
}
}