关于 Convert.ToDouble 输入字符串的格式不正确

问题描述

FileStreamfs=newFileStream(datapath,FileMode.Open);StreamReadersr=newStreamReader(fs);intline_Num=0;//总行数while(sr_E.ReadLine()!=null){line_Num++;}double[]Fre_Eva=newdouble[line_Num];double[]Value_Eva=newdouble[line_Num];sr_E.BaseStream.Seek(0,System.IO.SeekOrigin.Begin);string[]line;for(inti=0;i<line_Num;i++){line=sr_E.ReadLine().Split('');Value_Eva[i]=Convert.ToDouble(line[4]);Fre_Eva[i]=Convert.ToDouble(line1[0]);}2003002.510-156.838213690286400802010-158.0630764326038005010010-156.60942623748216002832010-156.60179607582132005580010-151.68004945094;txt文件的数据如下:2003002.510-156.838213690286400802010-158.0630764326038005010010-156.60942623748216002832010-156.60179607582132005580010-151.68004945094运行之后(红色语句)总是提示输入的字符串的格式不正确。如果我把txt文件的数据改成如下,然后再取第二列的数据则不会报错:12003002.510-156.8382136902862400802010-158.06307643260338005010010-156.609426237482416002832010-156.601796075821532005580010-151.68004945094求解释:

解决方案

本帖最后由 Jessica66520 于 2014-08-22 13:21:54 编辑
解决方案二:
就是格式不正确,比如有空格等,或者值超出了double的范围
解决方案三:
查一下double的范围
解决方案四:
line和line1都是什么东西你发的代码里既没有定义,也没有赋值,谁知道里面是什么
解决方案五:
另外while(sr_E.ReadLine()!=null){line_Num++;}double[]Fre_Eva=newdouble[line_Num];double[]Value_Eva=newdouble[line_Num];你这样用,也不嫌累不会定义List<double>Fre_Eva么然后在while里Fre_Eva.Add(value)
解决方案六:
double.trypase(string,outvalue)
解决方案七:
引用3楼Z65443344的回复:

line和line1都是什么东西你发的代码里既没有定义,也没有赋值,谁知道里面是什么

写错了,不好意思,应该把line1改为line.
解决方案八:
遇到这种问题,断点跟,看里面到底是什么啊最大的可能就是前面多了个空格,导致split('')之后,第一项是空字符串
解决方案九:
最好还是将分隔符改成逗号,写txt的时候即使多加了空格,转换之前string.trim()一下,空格就没了
解决方案十:
txt里,显示的时候有时候会给你自动对齐(比如输入tab,有时候占4个空格,有时候占1个)所以多输入了空格是很不明显的,可能根本看不出来如果是输入了连续2个逗号,就会比较明显了
解决方案十一:
引用4楼Z65443344的回复:

另外while(sr_E.ReadLine()!=null){line_Num++;}double[]Fre_Eva=newdouble[line_Num];double[]Value_Eva=newdouble[line_Num];你这样用,也不嫌累不会定义List<double>Fre_Eva么然后在while里Fre_Eva.Add(value)

已优化,谢谢你的建议O(∩_∩)O~
解决方案十二:
引用9楼Z65443344的回复:

txt里,显示的时候有时候会给你自动对齐(比如输入tab,有时候占4个空格,有时候占1个)所以多输入了空格是很不明显的,可能根本看不出来如果是输入了连续2个逗号,就会比较明显了

我检查过了,line[0]是有数据的,就是200,但一运行就提示
解决方案十三:
不可能吧.我觉得肯定是哪里犯了个低级错误"200"转double怎么可能报错你把文件和代码改成原来的样子,出现问题截图发上来看
解决方案十四:
肯定是分隔的时候出现空白了line=sr_E.ReadLine().Split(newchar[]{''},StringSplitOptions.RemoveEmptyEntries);

解决方案十五:
引用12楼Z65443344的回复:

不可能吧.我觉得肯定是哪里犯了个低级错误"200"转double怎么可能报错你把文件和代码改成原来的样子,出现问题截图发上来看

时间: 2024-11-23 00:35:53

关于 Convert.ToDouble 输入字符串的格式不正确的相关文章

System.FormatException: 输入字符串的格式不正确。

问题描述 原代码如下:protectedvoidButton1_Click(objectsender,EventArgse){HttpPostedFileupFile=myUpLoadFile.PostedFile;Stringmessage;if(upFile.ContentLength==0){message="请选择一个文件后上传";}else{StreamtempStream;intfileLength=upFile.ContentLength;Byte[]fileByteAr

异常-其他信息: 输入字符串的格式不正确。

问题描述 其他信息: 输入字符串的格式不正确. 求解决!! "System.FormatException"类型的第一次机会异常在 mscorlib.dll 中发生 其他信息: 输入字符串的格式不正确. 解决方案 string score=""; DataSet ds = new DataSet(); private void button2_Click(object sender, EventArgs e) { if(!score.Equals("&qu

输入字符串的格式不正确

问题描述 stringSstartPrice=Request.QueryString["startPrice"].ToString();stringSendPrice=Request.QueryString["endPrice"].ToString(); decimalistratPrice;decimalSendPriec;if(SstartPrice!=""){istartPrice=Convert.ToDecimal(SstartPrice

asp.net-C#中params的使用,为什么在调用函数时会出现输入字符串的格式不正确的问题

问题描述 C#中params的使用,为什么在调用函数时会出现输入字符串的格式不正确的问题 第一张是我写的函数, 第二张是调用出错 请问该怎么改,我需要传递到函数中的参数是不定个整形参数 解决方案 s.getinfo();//这个括号里你放个int型数组,然后将你的数给这个数组应该就可以了,你试试:要不然括号里的你要加花括号的,因为是一个数组: 如果回答对你有帮助,请采纳 解决方案二: params的用法没有错,可以试试这个,用法是一样的 using System; namespace Conso

输入字符串的格式不正确。求问这个问题怎么解决 。。。

问题描述 输入字符串的格式不正确.求问这个问题怎么解决 ... 解决方案 labMoney.Text无法转换为一个整数,看看它是否为空,有没有小数点和别的字符. 解决方案二: 用正则判断下输入的值是否为数字,不是数字就退出 if (!System.Text.RegularExpressions.Regex.IsMatch(labMoney.Text.Trim(), @"^d+(.d+)?$")) { Response.Write("labMoney输入错误!");

ASP.NET中输入字符串的格式不正确

问题描述 提示错误信息,望大家帮帮忙:行9:ProtectedSubsubmit_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)行10:行11:message.Text=Session("name")&"所获得的荣誉是:"&Mytable.Rows(CInt(Session("name"))).Item(honor.SelectedItem.Value)行12:EndSub行

个别客户端登陆报错:输入字符串的格式不正确。

问题描述 VS2003开发的ASP.NET系统,大多数的客户端登陆系统都没有问题,极个别的客户端登陆会报输入字符串的格式不正确.的错误.正常讲ASP.NET不应该受客户端的影响吧,百思不得其解,哪位指点一下."/"应用程序中的服务器错误.--------------------------------------------------------------------------------输入字符串的格式不正确.说明:执行当前Web请求期间,出现未处理的异常.请检查堆栈跟踪信息,

C# 输入字符串的格式不正确

问题描述 if(textBox1.Text==null){textBox1.Text="0":}floata=Convert.ToSingle(textBox1.Text); 解决方案 解决方案二:if(textBox1.Text==""){textBox1.Text="0":}floata=Convert.ToSingle(textBox1.Text); textbox1.text不可能是null的最多就是""解决方案三:t

itemcommand-DataList中用ItemCommand单击标题,出现字符串的格式不正确错误,求破解

问题描述 DataList中用ItemCommand单击标题,出现字符串的格式不正确错误,求破解 DataList中用ItemCommand实现单击新闻标题,打开一个窗体显示新闻详细信息,以及实现分页功能.但是,分页中的上一页,下一页,首页末页都可实现,唯有点击新闻标题就会出现 输入字符串的格式不正确 的错误 我的代码是这样的: protected void dlNews_ItemCommand(object source, DataListCommandEventArgs e) { switc