日期:2014-05-17  浏览次数:20919 次

C# 问题
int finePerDay = Convert.ToInt32(txtFinePerDay.Text);
Input string was not in a correct format.

请问这错了甚麽?
------最佳解决方案--------------------
是因为txtFinePerDay.Text的格式不正确,比如字母G就无法用Convert.ToInt32变成int类型

int finePerDay = Convert.ToInt32(txtFinePerDay.Text,16);//将16进制表示的字符串转成Int
                                                         //这样的话字符串只能输入0~F范围的

------其他解决方案--------------------

请问这错了甚麽? 
------其他解决方案--------------------
int finePerDay = Convert.ToInt32(txtFinePerDay.Text);
输入的字符串格式不对,必须这个Text="aaa"根本不能转换成int,所以就异常了。
可以使用int.TryParse()
int finePerDay = 0;
bool flag = int.TryParse(txtFinePerDay.Text , out finePerDay);
flag为true的时候表示转换成功,finePerDay 的值为转换后的值。
flag为false的时候表示转换失败,finePerDay 的值为0。
------其他解决方案--------------------
求帮助!!!! 
------其他解决方案--------------------
用断点看看,要么把你的程序发给我,我看看,你的程序理论上没有错

你还是先学会用断点吧,那个能捕捉到到错误的过程
------其他解决方案--------------------
要么你先使用一下int.TryParse()这个形式的,要么再试一下隐式转换?
------其他解决方案--------------------
数据格式不正确 用用int.TryParse()这个方法试试看
------其他解决方案--------------------
haukwong兄已经明确回复你的问题了,你的代码这种写法没什么问题,出现这个错误属于运行期异常,比如说把aaa转成int的数值型肯定不能成功,就像问你多大了,你说我是男的一样
------其他解决方案--------------------
问题和答案直接不匹配,还有就是你输入的时候要注意不要有空格,并且数字是在英文输入法状态下输入的
------其他解决方案--------------------
引用:
haukwong兄已经明确回复你的问题了,你的代码这种写法没什么问题,出现这个错误属于运行期异常,比如说把aaa转成int的数值型肯定不能成功,就像问你多大了,你说我是男的一样


就是这个意思。。
------其他解决方案--------------------
txtFinePerDay.Text 的格式不支持转换成INT  断点跑下 看看它获取到的是什么值
------其他解决方案--------------------
int32 是不可变的值类型,它表示有符号整数,其范围从负 2,147,483,648(用 Int32MinValue 常数表示)到正 2,147,483,647 的值(用 Int32MaxValue 常数表示)。 
------其他解决方案--------------------
因为输入的不是数字 所以转换不了 可以捕获错误 并提示
try
{
  int finePerDay = Convert.ToInt32(txtFinePerDay.Text);
}
catch
{
  messagebox.show("请输入数字");
}