日期:2011-05-07  浏览次数:20363 次

 

在C#中编程,对参数类型不象VB中那样宽容,不可避免的要进行各种类型间的相互转换,如在文本控件中输入的数据在参与计算时必须转换为相应的数值类型才能进行计算。通常我们可以用以下三种方法来进行:

1、强制类型转换

private void tst()

{

string t_string="1.4532";

double t_rtn;

t_rtn=Math.Cos((double)t_string);

...

}

2、Parse方法

double、string等类都具有一个名为Parse的方法,我们可用其将其它类型的变量转换为本类型:

private void button1_Click(object sender, System.EventArgs e)
{
double sp_x,sp_y,dis,azm,p_x,p_y;
string Alpha;string[] azTmp;
double Ad,Am,As; // 度、分、秒

Alpha=az.Text;
azTmp=Alpha.Split('.');
Ad=Convert.ToDouble(azTmp[0]);
Am=Convert.ToDouble(azTmp[1].Substring(0,2));
As=Convert.ToDouble(azTmp[1].Substring(2,2));

//Dbg.Text =Convert.ToString(Ad) + " " + Convert.ToString(Am) + " " +Convert.ToString(As);

sp_x=double.Parse(sx.Text);


sp_y=double.Parse(sy.Text);


dis=double.Parse(d.Text);


azm=(Ad+Am/60.0+As/3600) * Math.PI/180;
p_x=(double)System.Math.Cos( azm) * dis+sp_x;
p_y=(double)System.Math.Sin( azm) * dis+sp_y;
px.Text=p_x.ToString();
py.Text=p_y.ToString ();
point3 p3=new point3();
p3.x=1.256;p3.y =2.356;p3.h=100;
Dbg.Text=p3.ToString();

}

3、Convert类

private void button1_Click(object sender, System.EventArgs e)
{
double sp_x,sp_y,dis,azm,p_x,p_y;
string Alpha;string[] azTmp;
double Ad,Am,As; // 度、分、秒

Alpha=az.Text;
azTmp=Alpha.Split('.');
Ad=Convert.ToDouble(azTmp[0]);


Am=Convert.ToDouble(azTmp[1].Substring(0,2));


As=Convert.ToDouble(azTmp[1].Substring(2,2));

//Dbg.Text =Convert.ToString(Ad) + " " + Convert.ToString(Am) + " " +Convert.ToString(As);

sp_x=double.Parse(sx.Text);

sp_y=double.Parse(sy.Text);


dis=double.Parse(d.Text);


azm=(Ad+Am/60.0+As/3600) * Math.PI/180;
p_x=(double)System.Math.Cos( azm) * dis+sp_x;
p_y=(double)System.Math.Sin( azm) * dis+sp_y;
px.Text=p_x.ToString();
py.Text=p_y.ToString ();
point3 p3=new point3();
p3.x=1.256;p3.y =2.356;p3.h=100;
Dbg.Text=p3.ToString();

}