c#如何将文本框中内容转换为数值型?求助!

如题所述

1.隐式转换

当对简单的值类型进行转换时,如果是按照 Byte,short,int,long,float,double从左到右(从短到长)进行转换的时候,可以直接进行转换(隐式转换),不用做任何说明。简单的代码示例:
static void Main(string[] args)
{
int a = 10;
long b = a;
Console.Write("b的值为:"+b);
Console.ReadKey();

}
2.显示转换

依然是对值类型进行转换时,从长字节转换成短字节,直接转换的话,编译器会提示“无法将类型 *转换为类型*,存在一个显示转换”,这时需要进行强制转换(显示转换)。简单的代码示例:
static void Main(string[] args)
{
long a = 10;
int b = (int)a;
Console.Write("b的值为:"+b);
Console.ReadKey();
}
每种数据类型都存在自身的范围,例如byte类型的范围是0~255,int型的范围是0~65535,当int型转换成byte类型时,看下代码示例:
staticvoid Main(string[] args)
{
int a = 256;
byte b = (byte)a;
Console.Write("b的值为:"+b);
Console.ReadKey();
}
这段代码的运行结果 “b的值为0”,如果把a的值改为257,则b的值为1。结果是怎么来的,编译器会把256转换成对应的二进制,也就是100000000,当转换成byte类型时(8位二进制数),会长出8位的部分截掉,因此结果变成了0。

3.toString()转换
当把值类型转换成字符串类型时,可以直接调用值类型的方法toString()进行转换,另外toString还可以将结果转换成相应的进制形式,简单的代码示例:
<span style="font-size:18px;">staticvoid Main(string[] args)
{
//转换为对应的字符串类型
int a = 256;
string b =a.ToString();
Console.Write("b的值为:"+b);
Console.ReadKey();
}
static void Main(string[] args)
{
//转换为十六进制形式(X可以换为小写,代表对应的a-f的大小写)
int a = 256;
string b =a.ToString("X");
//输出结果为“b的值为100”
Console.Write("b的值为:"+b);
Console.ReadKey();
}</span>

4.parse方法
像int、long、float类型都有parse方法,可以将字符串转换为对应的数据类型,简单的代码实例:
[csharp] view plaincopyprint?
<span style="font-size:18px;">staticvoid Main(string[] args)
{
int a = 256;
string b ="256";
if (int.Parse(b) ==a)
{
Console.Write("a和b的值相等!");
Console.ReadKey();
}
}</span>

5.Convert类
Convert有很多的转换数据类型的方法,它将继承自Object类型的对象转换为制定的类型,即Convert.toInt32()(还有对应其他类型的转换)。另外的一种方法:Convert.ChangeType(Object,Type),这种方法在涉及到泛型时会显现出优势。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-25
try
{
    chicken = int.Parse(textBox2.Text.Trim()); //转换前,滤除输入内容前后的空格
}
catch
{
    MessageBox.Show("小鸡数量输入错误!");
    chicken = 0;
}

第2个回答  2014-09-25
System.Convert.ToInt32(textBox2.Text)

本回答被提问者采纳