将字符串转换为短 C# 时出现格式异常
Posted
技术标签:
【中文标题】将字符串转换为短 C# 时出现格式异常【英文标题】:Format Exception when converting string to short C# 【发布时间】:2013-10-24 09:48:29 【问题描述】:我正在尝试在 C# 中将 string
转换为 short
。
但我不断收到格式异常是未处理的错误。
short copies = short.Parse(mainForm.quantityBox.Text);
printDocument.PrinterSettings.Copies = copies;
quantityBox
中的值为“1”。
Visual Studio 给我的提示并不是很有帮助 例如:“将字符串转换为日期时间时,在放置每个变量之前解析字符串以获取日期”
【问题讨论】:
常量“mainForm.quantityBox.Text”里面的值是多少 异常时的文本框值是多少? 向我们展示一些示例输入..是否在不同的文化中,有货币符号或分隔符...! 抱歉,已编辑。 @saravanan 尽量确保1中没有空格,如'1'或'1'等。还有,这个异常中的格式化消息[+Inner exception]是什么。 【参考方案1】:尝试添加 ToString 调用:
short copies = short.Parse(mainForm.quantityBox.Text.ToString());
您收到异常的原因是因为 quantityBox 的值为 1 是一个整数。 short.Parse() 接受一个字符串,因此通过将 quantityBox.Text 的内容转换为 ToString(),不管给它什么值,都会转换成字符串。
【讨论】:
“无法将类型字符串隐式转换为短字符串”这就是我得到的。【参考方案2】:如果您的输入文本值 id 带有“.”,则会出现格式异常。 (点)在里面。最好替换或处理这个点(.)以避免“Input string was not in a correct format.
”。
这会抛出错误:
short val = short.Parse("4.0");
这不会抛出任何错误:
short val1 = short.Parse("4");
【讨论】:
【参考方案3】:short关键字表示整型数据类型,按照如下Blog所示的大小和范围来存储值
【讨论】:
以上是关于将字符串转换为短 C# 时出现格式异常的主要内容,如果未能解决你的问题,请参考以下文章
在 sparksql 中以正确格式将字符串数据转换为十进制时出现问题
将python代码转换为c ++时出现opencvcornerSubPix异常
将格式为“yyyy-MM-dd HH:mm:ss.m”的日期字符串转换为“yyyy-MM-dd HH:mm:ss”时出现问题